URL-адрес веб-службы, которую мне нужно вызвать, включает параметр, содержащий текст в произвольной форме.Я не уверен, почему он был разработан таким образом, поскольку он отправляется с использованием POST и включает в себя множество полей как часть POST.Но это вызывает у меня проблему.
Для некоторых символов, таких как знак фунта и <>, 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())
{
...
}