Вы, кажется, не использовать любой из стандартных запросов кодировок, вместо того, чтобы вы, кажется, изобретать какой-то собственный протокол, так что вы не можете полагаться на сервер ASP.NET, чтобы иметь возможность анализировать этот запрос. Вы должны будете читать значения непосредственно из InputStream:
public void ProcessRequest(HttpContext context)
{
using (var reader = new StreamReader(context.Request.InputStream))
{
// This will equal to "charset = UTF-8 & param1 = val1 & param2 = val2 & param3 = val3 & param4 = val4"
string values = reader.ReadToEnd();
}
}
Если с другой стороны, вы используете некоторую стандартную кодировку запроса, такую как application/x-www-form-urlencoded
вы сможете прочитать параметры, как обычно.
Вот как такой запрос полезной нагрузки может выглядеть следующим образом:
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
Для того, чтобы отправить такой запрос можно использовать WebClient
:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "param1", "value1" },
{ "param2", "value2" },
{ "param3", "value3" },
{ "param4", "value4" },
};
byte[] result = client.UploadValues(values);
}
Теперь на сервере вы можете прочитать значения как то:
public void ProcessRequest(HttpContext context)
{
var value1 = context.Request["param1"];
var value2 = context.Request["param2"];
...
}
Спасибо большое! Я использую AngularJS для функций изменения размера интерфейса переднего плана, а затем загружаю на сервер пакет (массив) объектов JSON (содержащий имя, размеры, сами данные изображения (base64) и т. Д.). У меня возникли проблемы с чтением полезной нагрузки (если добавить параметры, «данные:» не удалось найти/прочитать на сервере (или, ну, не знаю, как это сделать).) Так что с помощью streamReader он работает отлично :) СПАСИБО YOU :) – LittleTiger
@Darin. Как вы думаете, вы могли бы помочь мне с этим вопросом http://goo.gl/qiOdmT – Axel