Lei non sembra essere utilizzando una delle codifiche del modulo standard, invece ti sembra di essere reinventare un protocollo personalizzato, quindi non si può fare affidamento su il server ASP.NET per essere in grado di analizzare questa richiesta. Si dovrà leggere i valori direttamente dal 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();
}
}
Se d'altra parte si utilizzano alcuni richiesta di codifica standard come application/x-www-form-urlencoded
si sarà in grado di leggere i parametri come al solito.
Ecco come tale richiesta payload potrebbe essere simile:
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
Per poter inviare tale richiesta è possibile utilizzare un WebClient
:
using (var client = new WebClient())
{
var values = new NameValueCollection
{
{ "param1", "value1" },
{ "param2", "value2" },
{ "param3", "value3" },
{ "param4", "value4" },
};
byte[] result = client.UploadValues(values);
}
Ora sul server è possibile leggere i valori così:
public void ProcessRequest(HttpContext context)
{
var value1 = context.Request["param1"];
var value2 = context.Request["param2"];
...
}
fonte
2013-06-08 08:34:19
Grazie mille! Uso AngularJS per la funzionalità di ridimensionamento delle immagini front-end, quindi carica un batch (array) di oggetti JSON (contenente nome, dimensioni, i dati dell'immagine stessa (base64) e così via) sul server. Stavo riscontrando problemi nel leggere il carico utile (se si aggiungono parametri, i "dati:" non possono essere trovati/letti serveride (o bene, non si sa come)) Quindi, usando lo streamReader ora funziona bene :) GRAZIE YOU :) – LittleTiger
@Darin Ti preghiamo di pensare che potresti aiutarmi con questa domanda http://goo.gl/qiOdmT – Axel