On Apr 11, 6:30*pm, Arne Vajhøj <a...@vajhoej.dk> wrote:
> On 4/11/2012 7:22 PM, Davej wrote:
> > On Apr 11, 6:09 pm, Arne Vajhøj<a...@vajhoej.dk> *wrote:
> >> On 4/11/2012 7:06 PM, Arne Vajhøj wrote:
> >>> On 4/11/2012 7:01 PM, Davej wrote:
> >>>> On Apr 11, 4:41 pm, Arne Vajhøj<a...@vajhoej.dk> *wrote:
> >>>>> On 4/11/2012 12:48 PM, Davej wrote:
> >>>>>> On Apr 7, 8:29 am, Arne Vajhøj<a...@vajhoej.dk> *wrote:
> >>>>>>> On 4/7/2012 9:18 AM, Davej wrote:
> >>>>>>>> On Apr 7, 8:04 am, Arne Vajhøj<a...@vajhoej.dk> *wrote:
> >>>>>>>>> On 4/7/2012 8:26 AM, Davej wrote:
>
> >>>>>>>>>> Is this commonly done? I'm thinking it would be extremely useful.
>
> >>>>>>>>> I think it is relative common to send HTTP requests from C#
> >>>>>>>>> code (WebClient or HttpWebRequest). Sometimes it fake
> >>>>>>>>> headers to completely look like a browser.
>
> >>>>>>>>> It is also possible to embed a web browser in a web form.
>
> >>>>>>>> Well, I'm interested in the very simple case of communicating with a
> >>>>>>>> website using a barebones page it has set aside for this automated
> >>>>>>>> purpose. Is that sort of thing pretty trivial to get working? Thanks.
>
> >>>>>>> If you can use WebClient then it is rather trivial.
>
> >>>>>>> WebClient wc = new WebClient();
>
> >>>>>> So far I can see the file at the URL, but I can't get a response to a
> >>>>>> post. The UploadString() example looks a bit too simple. Shouldn'tthe
> >>>>>> data string have a format more like "name1=value1&name2=value2" ? Or
> >>>>>> do I have to do some other setup stuff?
>
> >>>>>>http://msdn.microsoft.com/en-us/libr...vs.110%29.aspx
>
> >>>>> It is probably UploadString you need to use and you can send data
> >>>>> with that.
>
> >>>>> But if you want more control, then look at HttpWebRequest
> >>>>> (I can find an example if needed).
>
> >>>> I looked up HttpWebRequest but the constructor is marked "obsolete."
> >>>> See...
>
> >>>>http://msdn.microsoft.com/en-us/libr...webrequest%28v....
>
> >>> You use WebRequest.Create with a HTTP URL to create a HttpWebRequest.
>
> >>>> I tried UploadString(), UploadData() and UploadValues() but the page
> >>>> never seems to see the POST. It just responds with what looks like an
> >>>> initial rendering.
>
> >>> You need to be sure that you are POST'ing to the action URL
> >>> not the form URL.
>
> >> Ooops.
>
> >> I just checked your comment.
>
> >> //<form name="form1" method="post" action="default.aspx" id="form1">
> >> //<input name="txtUserID" type="text" id="txtUserID" />
> >> //<input name="txtPassword" type="password" id="txtPassword" />
> >> //<input type="submit" name="btnLogin" value="Login" id="btnLogin" />
>
> >> If that is an ASP.NET web forms page, then it becomes a bit
> >> tricky.
>
> >> You need to send the viewstate in your POST for things
> >> to work properly.
>
> >> Look at the form source and see the hidden field.
>
> > Oh! I forgot about that hidden field! So I need to downloadData() and
> > then send the name/value pair of the viewstate back with the other
> > pairs?
>
> Yes.
>
> Arne
Bingo. That was it. Much thanks! Should have been obvious to me but I
just wasn't thinking to look for hidden fields.