467,228 Members | 1,439 Online
Bytes | Developer Community
Ask Question

Home New Posts Topics Members FAQ

Post your question to a community of 467,228 developers. It's quick & easy.

Programmatic HTTP Post returns Empty Form fields on ASPX Server Side

Using Winform app writing a HTTP Post using the following... on the
server side, I get no form fields. Request.Form.AllKeys.Length = 0.

If I put the field/value paris in the URL I can use
Request["FieldName"] to retrieve the values,
but POST doesn't work.

There is NO Proxy... the only thing I can think is that ASP.NET is
somehow filtering out the page because I'm obviously not posting the
viewstate??? Seems like there was some setting for this, but I can't
recall what it is.
HttpWebRequest request = (HttpWebRequest)
HttpWebRequest.Create("http://localhost/test.aspx");
WebResponse response;

string commentField = "ABCD=123";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(commentField);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
response = request.GetResponse();
//SERVER SIDE, test.aspx page
Page_Load()
{
//BREAK POINT SET HERE>>>>
//Request.Form.AllKeys returns nothing (0 length)
}
Mar 22 '08 #1
  • viewed: 3254
Share:
1 Reply
"ERobishaw" <ER*******@gmail.comwrote in message
news:4c**********************************@e23g2000 prf.googlegroups.com...
Using Winform app writing a HTTP Post using the following... on the
server side, I get no form fields. Request.Form.AllKeys.Length = 0.

If I put the field/value paris in the URL I can use
Request["FieldName"] to retrieve the values,
but POST doesn't work.

There is NO Proxy... the only thing I can think is that ASP.NET is
somehow filtering out the page because I'm obviously not posting the
viewstate??? Seems like there was some setting for this, but I can't
recall what it is.
HttpWebRequest request = (HttpWebRequest)
HttpWebRequest.Create("http://localhost/test.aspx");
WebResponse response;

string commentField = "ABCD=123";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(commentField);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
response = request.GetResponse();
//SERVER SIDE, test.aspx page
Page_Load()
{
//BREAK POINT SET HERE>>>>
//Request.Form.AllKeys returns nothing (0 length)
}
Viewstate won't impact this code. The request object is a lower level
object provided by the HttpContext that is present in any handler be that an
ASPX or ASHX etc.

I can't explain why AllKeys has a length of 0, your calling code looks good.
Have you tried the System.Net.WebClient object instead. It handles a lot of
this stuff for you:-

NameValueCollection fields = new NameValueCollection();
WebClient client = new WebClient();
fields.Add("ABCD", "123");
String response = client.UploadValues("http://localhost/test.aspx", fields);

--
Anthony Jones - MVP ASP/ASP.NET
Mar 22 '08 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Tim Wade | last post: by
19 posts views Thread by Bill Cohagan | last post: by
10 posts views Thread by Mark | last post: by
4 posts views Thread by CindyH | last post: by
reply views Thread by Adict | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.