如何在.net框架中发送包含'%%'的http post请求?

时间:2013-03-13 07:52:41

标签: c# http post encoding

我想用c#发送一个帖子请求。 我写的代码是:

string Pack = "Http://178.131.59.12:8081/rn/lo/?%%1111103643,A,130313073912,N3518.3952E04700.6455,10,85,0,FFFFFFFF,108\r\n";
Uri UR = new Uri(Pack);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.CreateDefault(UR);
req.Method = "POST";
WebResponse res = req.GetResponse();
Stream str = res.GetResponseStream();
int b = str.ReadByte() - 48;
if (b == 0)
    Console.WriteLine("Successful");
str.Close();

当Uri创建时,UR将%%转换为无关紧要的符号,例如%25%◄(因为转义)

我在包装值

中将%替换为%25
string Pack = "Http://178.131.59.12:8081/rn/lo/?%25%251111103643,A,130313073912,N3518.3952E04700.6455,10,85,0,FFFFFFFF,108\r\n";

但是,服务器不接受http标头。

当我用任何浏览器向服务器发送拳头包值时,服务器接受它,但编程没有。

我想我应该在不转义UrsString的情况下创建一个Uri。 如何在C#中转义UriString来创建一个Uri?

1 个答案:

答案 0 :(得分:0)

使用HttpWebRequest.CreateHttp而不是HttpWebRequest.CreateDefault