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't the
> > 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).
>
> Arne
I looked up HttpWebRequest but the constructor is marked "obsolete."
See...
http://msdn.microsoft.com/en-us/libr...vs.110%29.aspx
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.
Here is the UploadValues() code...
public String UploadValuesTest() {
WebClient client = new WebClient();
//Console.Write("\nPlease enter the URI to post data to :
");
string uriString = @"http://www.stlnetwork.net/
default.aspx";
// Create a new NameValueCollection instance to hold some
custom parameters to be posted to the URL.
NameValueCollection NameValPairs = new
NameValueCollection();
//<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" />
// Add necessary parameter/value pairs to the name/value
container.
//"txtUserID=Userabc txtPassword=Passwd1";
NameValPairs.Add("txtUserID", "Userabc");
NameValPairs.Add("txtPassword", "Passwd1");
// 'The Upload(String,NameValueCollection)' implicitly
method sets HTTP POST as the request method.
byte[] responseArray = client.UploadValues(uriString,
NameValPairs);
// Decode and display the response.
return Encoding.ASCII.GetString(responseArray);
}//end