C#是WebRequest.Create给我编码的网址是什么?(c# is WebRequest.C

2019-10-23 04:55发布

我一直给一个API来发送短信,该API指出,我应该使用这个网址

http://<server>:<port>/bulksms/bulksms?
username=XXXX&password=YYYYY&type=Y&dlr=Z&destination=QQQQQQQQQ&sour
ce=RRRR&message=SSSSSSSS<&url=KKKK>

消息URL必须是URL UTF-8编码

我所做的是创建一个URL像这样:

string urlSMS = string.Format("http://{0}:{1}/bulksms/bulksms?username={2}&password={3}&type={4}&dlr={5}&destination={6}&source={7}&message={8}&url=0",
server, port, username, password, type, dlr, destination, source, message);

然后我打电话给那个URL是这样的:

WebRequest wr = WebRequest.Create(urlSMS);
                wr.Timeout = 3500;
                try
                {
                    HttpWebResponse response = (HttpWebResponse)wr.GetResponse();

但是,我一直有超时错误消息,我检查过了,这就是为什么我问。 我需要知道,如果

WebRequest.Create(urlSMS)

给我一个URL-UTF-8编码与否。

谢谢

Answer 1:

是。 它看起来像WebRequest.Create(URL)将UTF-8编码的URL。

当我试试这个:

WebRequest r = WebRequest.Create("http://www.google.com/search?q=♥");

我可以看到,内部表示如果URI被编码: r.RequestUri.AbsoluteUri返回http://www.google.com/search?q=%E2%99%A5

r.RequestUri.ToString()返回http://www.google.com/search?q=♥



文章来源: c# is WebRequest.Create gives me a URL encoded?