【发布时间】:2016-02-14 15:46:28
【问题描述】:
我需要向包含未转义“|”的地址发送 GET 请求(竖线)。服务器(不是我的)不会接受带有转义 | 的查询。 (即 %7C)
但是,每当我从地址构造一个新的 Uri 时,我可以看到 absoluteUri 包含我的地址的转义版本 (%7C)。
有没有办法在 C# 中使用未转义的 | 发送 GET 请求?
(使用 .NET 4.5)
任何帮助将不胜感激!谢谢。
编辑:
string formUrl = "http://example.com/|12|"; //just an example
Uri temp = new Uri(formUrl);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(temp);
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = cookies;
req.Method = "GET";
req.KeepAlive = true;
req.KeepAlive = true;
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
List<string> gethtml = new List<string>();
using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
while (!sr.EndOfStream)
gethtml.Add(sr.ReadLine());
}
resp.Dispose();
如果我查看 temp.AbsoluteUri,竖线/竖线字符被编码为 %7C。
谢谢!
【问题讨论】:
-
它是否会影响功能,因为我认为它不应该......
-
另外,我认为这个角色叫管道
-
“但是,每当我从地址构造一个新的 Uri”.. 你能限定这个语句吗?.. 你是指在这里使用
Uri.Net 类型吗?你能提供一个代码 sn-p 你尝试用 GET 方法发送请求吗? -
我编辑了帖子感谢您的帮助!
-
我见过很多字符管道 vbar 的名字哈哈