1

我想用 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%◄(因为转义)

我将 Pack 值中的 % 替换为 %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。如何UriString在 C# 中创建不转义的 Uri?

4

1 回答 1

0

使用 HttpWebRequest.CreateHttp 而不是 HttpWebRequest.CreateDefault

于 2016-08-16T21:12:15.360 回答