如何发送包含'%%'在.net框架中

本文关键字:net 框架 何发送 包含 | 更新日期: 2023-09-27 18:03:42

我想用c#发送一个post request。我写的代码是:

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 value

中将%替换为%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报头。

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

我想我应该创建一个Uri没有转义UrsString。我如何在c#中创建一个没有转义UriString的Uri ?

如何发送包含'%%'在.net框架中

使用HttpWebRequest。创建http而不是HttpWebRequest。CreateDefault