It seems you are not using any standard request encodings, instead you seem to be inventing some kind of user protocol, therefore you cannot rely on the ASP.NET server to parse this request. You will need to read the values โโdirectly from the InputStream:
public void ProcessRequest(HttpContext context) { using (var reader = new StreamReader(context.Request.InputStream)) {
If, on the other hand, you use standard request encoding, such as application/x-www-form-urlencoded , you can read the parameters as usual.
Here is what the request payload looks like:
POST /Handler.ashx HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 47 Connection: close param1=val1¶m2=val2¶m3=val3¶m4=val4
To send such a request, you can use WebClient :
using (var client = new WebClient()) { var values = new NameValueCollection { { "param1", "value1" }, { "param2", "value2" }, { "param3", "value3" }, { "param4", "value4" }, }; byte[] result = client.UploadValues(values); }
Now on the server you can read the following values:
public void ProcessRequest(HttpContext context) { var value1 = context.Request["param1"]; var value2 = context.Request["param2"]; ... }
Darin Dimitrov
source share