发送以下请求(注意查询字符串中的编码id),但服务器只是“法律”。关于我缺少的任何想法?
string url = "http://localhost/api/cms/content/?id=law&Order@the#house!";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
...
}
答案 0 :(得分:2)
问题是&
不是“查询字符串编码” - 它是XML / HTML实体转义,服务器(正确)打破查询字符串中&
的id参数。服务器关心URL,而不是XML。
请参阅Percent Encoding (aka URI encoding)了解如何正确 1 写下
的网址..content/?id=law%26Order%40the%23house%21
1 实际规则有点复杂(即@
,!
和;
不需要编码) - 如“在特定上下文中没有保留目的的保留字符也可能是百分比编码,但在语义上不同于那些不是”。
有关详细信息,请参阅What every web developer must know about URL encoding,其中提供了良好的评论以及有关如何正确构建网址的一些指南。
答案 1 :(得分:1)
! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
这里你应该如何编码查询字符串。
这里针对您的情况:
http://localhost/api/cms/content/?id=law%26Order%40the%23house%21
答案 2 :(得分:1)
请务必在网址中对您的字符进行编码
例如('&')是“%26”
这称为保留字符 喜欢 : ! #$'()* +,/:; =? @ []
检查此网址plz
答案 3 :(得分:0)
问题是&不是"查询字符串编码" - 它是一个XML / HTML实体 - 转义 像这样使用它:
string url = "http://localhost/api/cms/content/?id=law&Order@the#house!";

适合我