2
我需要調用的Web服務的URL包含一個包含自由格式文本的參數。我不確定爲什麼它是這樣設計的,因爲它是使用POST發送的,並且包含許多字段作爲POST的一部分。但是,這是我的問題。針對HttpWebRequest的網址被特殊字符截斷
對於某些字符,如英鎊符號和<>,URL在遇到問題字符時會被截斷。我是HTML編碼參數的文本,但問題依然存在。 我可以看到特殊字符,例如>正被編碼爲類似gt;的東西。我在想編碼字符串中的分號在某種程度上是個問題。
我把一個嗅探器接收傳入的請求在服務器,我看到那裏的URL已被截斷。
在服務器上我看到這樣的:的
...?extraData=kjfkfjslkj
代替:
...?extraData=kjfkfjslkj#kfjkdlsfj
的代碼是這樣的:哈希後
using System.Web;
....
String strExtra="kjfkfjslkj#kfjkdlsfj";
strURL = strStuff + "?extraData=" + System.Web.HttpUtility.HtmlEncode(strExtra);
HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(new Uri(strURL));
oRequest.Method = httpMethod;
oRequest.ContentType = "application/atom+xml";
...
using (WebResponse oResponse = oRequest.GetResponse())
{
...
}
是的。這對我有效。唯一不同的是我使用System.Web.HttpUtility.UrlEncode() – George 2011-05-13 01:11:42
'Page.Server'屬性的類型爲'HttpServerUtility',而'UrlEncode' /'UrlDecode'方法實際上將該調用傳遞給'HttpUtility。 UrlEncode' /'HttpUtility.UrlDecode',所以你很好。 – 2011-05-13 01:36:10
System.Web.HttpUtility.UrlEncode不會擺脫散列符號... – Ted 2012-10-11 18:42:04