[英]Http Post request Without encoding parameters in C# Windows phone 8.1
我發出了一個用逗號分隔值的發布請求。 但是我的表單內容更改了,並且用“,”替換為“%2C”。 因此請求不會在服務器端收到。
我只想將“%2C”替換為“,”。
我嘗試使用不同的代碼,但是該代碼用於字符串。
//Uri.EscapeDataString(formContent).Replace("%2C", ",");
上一行是用於字符串的,但對於FormContent,我也需要相同的字符串。
這是我的代碼。
Windows.Web.Http.HttpClient clientOb = new Windows.Web.Http.HttpClient();
Uri connectionUrl = new Uri("http://www.helloworld.com/istar/fileupload/Lip?");
string framURL = UTCdatetime + "," + lng + "," + lat + "," + speed + alt + "," + "," + battery_level + "," + accuracy;
Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("name", Image_file_name);
pairs.Add("frame", framURL);
//Here is My Content Form.
Windows.Web.Http.HttpFormUrlEncodedContent formContent = new Windows.Web.Http.HttpFormUrlEncodedContent(pairs);
我正在對FormContent進行編碼。 喜歡
{name=WP_20160224_002.jpg&frame=927858b101b71083f37549517819d6ac%2C20160225125928%2C%2C%2C%2C%2C%2C%2C100%2C%2C2%2C%2C%2C0}
我需要使用逗號發送請求,因此我想刪除“%2C”。 請幫助解決這個問題。
我需要像上面這樣的內容形式...
{name=WP_20160224_002.jpg&frame=927858b101b71083f37549517819d6ac,20160225092908,74.253794,31.471193,-1,-1,0,,100,103,2,-1,0}
我在這里發送發帖請求。
Windows.Web.Http.HttpResponseMessage response = await clientOb.PostAsync(connectionUrl, formContent);
您將表單編碼與URL編碼混淆了。 在您的示例中,幾乎不需要對該查詢字符串進行編碼。 表單和查詢字符串具有相似的key=value
語法,但是格式有所不同。
您使用Uri類是正確的-但是您可以等到最后從字符串構造它,因為這將確保完全清除給定的字符串-請參閱Uri類的MSDN文檔的備注部分。
這是一個未經測試的示例:
string framURL = UTCdatetime + "," + lng + "," + lat + "," + speed + alt + "," + "," + battery_level + "," + accuracy;
Dictionary<string, string> pairs = new Dictionary<string, string>();
pairs.Add("name", Image_file_name);
pairs.Add("frame", framURL);
var queryString = String.Join("&", pairs.Select(kvp => kvp.Key + "=" + kvp.Value));
Uri connectionUrl = new Uri("http://www.helloworld.com/istar/fileupload/Lip?" + queryString);
讓我知道你是怎么辦的!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.