2
호출해야하는 웹 서비스의 URL에는 자유 형식 텍스트가 포함 된 매개 변수가 포함됩니다. POST를 사용하여 전송되고 POST의 일부로 많은 필드가 포함되어 있기 때문에 왜 그렇게 설계되었는지는 잘 모르겠습니다. 그러나 그것은 나에게 문제를 일으키고있다.특수 문자로 잘린 HttpWebRequest의 URL
파운드 기호와 <>과 같은 일부 문자의 경우 URL은 문제가있는 문자에 부딪 힐 때 잘립니다. 매개 변수의 텍스트를 HTML로 인코딩하지만 문제가 남아 있습니다. >와 같은 특수 문자가 gt;와 같이 인코딩되어 있습니다. 인코딩 된 문자열의 세미콜론은 문제가 있다고 생각합니다.
들어오는 요청을받는 스니퍼를 서버에 놓았으며 URL이 잘 렸습니다. 해시 후
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
'Page.Server' 속성은'HttpServerUtility' 타입이고'UrlEncode' /'UrlDecode' 메소드는 실제로 호출을'HttpUtility '에 전달합니다. UrlEncode' /'HttpUtility.UrlDecode', 당신이 좋다. –
System.Web.HttpUtility.UrlEncode가 해시 기호를 제거하지 않습니다. – Ted