2013-03-13 110 views
1

我想用c#发送一个post请求。 我写的代码是:如何在.net框架中发送包含'%%'的http发布请求?

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(); 

时乌里创建,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头。

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

我想我应该创建一个Uri而不会转义UrsString。 如何创建一个Uri,在C#中跳出UriString

+0

查询字符串如图所示***无效***。你想要什么*它与一个无效的网址? – 2013-03-13 08:03:25

回答

0

使用HttpWebRequest.CreateHttp代替HttpWebRequest.CreateDefault