C#Windows phone 8.1中不带编码参数的Http Post请求

C#Windows phone 8.1中不带编码参数的Http Post请求,c#,.net,post,windows-phone-8.1,C#,.net,Post,Windows Phone 8.1,我用逗号分隔的值发出了一个post请求。但是我的表单内容发生了更改,并将“,”替换为“%2C”。所以请求不会在服务器端接收 我只想将“%2C”替换为“,” 我尝试了不同的代码,但这些代码是用于字符串的 //Uri.EscapeDataString(formContent).Replace("%2C", ","); 上面一行是字符串,但我需要同样的FormContent 这是我的密码 Windows.Web.Http.HttpClient clientOb = new W

我用逗号分隔的值发出了一个post请求。但是我的表单内容发生了更改,并将“,”替换为“%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);
我需要用逗号发送请求,所以我想删除“%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类是正确的,但是您可以等到最后再从字符串构造它,因为这将确保给定的字符串被完全清除,请参阅的备注部分

以下是一个未经测试的示例:

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);
string framURL=UTCdatetime+”、“+lng+”、“+lat+”、“+speed+alt+”、“+”、“+battery\u level+”、“+精度”;
字典对=新字典();
添加(“名称”,图像\文件\名称);
添加(“框架”,framURL);
var queryString=String.Join(“&”,pairs.Select(kvp=>kvp.Key+“=”+kvp.Value));
Uri connectionUrl=新Uri(“http://www.helloworld.com/istar/fileupload/Lip?“+询问);

让我知道你进展如何

我在connectionUrl中得到了确切的url。。现在需要发布此url。。Windows.Web.Http.HttpResponseMessage response=等待clientOb.PostAsync(connectionUrl,formContent);这个方法总是使用2个参数,分别是表单类型和url类型……等等,你是想先组成一个表单主体吗?端点期望什么?这些数据应该在查询字符串中传递还是作为表单内容传递?Windows.Web.Http.HttpResponseMessage response=await clientOb.PostAsync(connectionUrl,formContent);此字符串按原样在服务器上发送数据。但是我必须用这个发送表单内容。。。虽然我有完整的URI字符串…您打算在表单内容中发送什么?在查询字符串中您打算发送什么?你的解释令人困惑。
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);