PDA

View Full Version : [C#] Problemi di invio con HTTPWebRequest


race2
22-03-2012, 10:09
Salve,
ho un problema con l'invio tramite questo script, la pagina "sendsms.php" come test ho messo uno script che scrive in un TXT tutte le variabili POST che gli arrivano e i loro valori, tutto ok, solo che il valore se contiene certi caratteri tipo il segno dell'addizione +, non li scrive, io credo che non arrivano proprio.

il problema che per altri motivi il segno +, lo davo usare per forza.

cosa devo fare per fare in modo che arrivi ???


string URL = @"http://127.0.0.1/_Test/sendsms.php";
string postData = @"country=0039&" +
"num=" + txtNum.Text + "&" +
"msg=" + txtMsg.Text;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Accept = @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
request.UserAgent = @" Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18";
request.AllowAutoRedirect = true;

request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;

Stream dataStream = request.GetRequestStream();

dataStream.Write(byteArray, 0, byteArray.Length);

dataStream.Close();

banryu79
22-03-2012, 10:38
Credo che il problema qui sia che non codifichi in modo opportuno (URL-encoding (https://en.wikipedia.org/wiki/Percent-encoding)) i valori delle variabili post.
In C# (.NET) credo tu possa usare la classe HttpUtility, vedi qua (http://stackoverflow.com/questions/575440/url-encoding-using-c-sharp).

race2
22-03-2012, 15:20
non riesco a trovate il Namespace per utilizzare : HttpUtility


string url = HttpUtility.UrlEncode(" /*my-string*/ ");


non funziona con: using System.Web; //eppure la guida cice cosi...., bo!!!

banryu79
22-03-2012, 17:45
Non so che dirti, non conosco .NET

Kralizek
22-03-2012, 19:12
che versione di .net usi?
hai importato l'assembly System.Web.dll ?

per la 4 vale questa pagina:
http://msdn.microsoft.com/en-us/library/system.web.httputility.aspx

race2
22-03-2012, 19:53
ok, ho risolto, ho scaricato la dll da internet, solo che con HttpUtility.UrlEncode non mi invia i valori, non arriva i valori e i nomi delel variabili alla pagina PHP che scrive, mi aggiunge solo righe bianche.