않습니다 서버. 그러나 HttpWebRequest를 사용하는 경우 WCF는 내 게시물을 사용하고 올바르게 200으로 응답합니다. WCF 서비스를 호출하기 위해 Fiddler를 사용하여 요청을 성공적으로 작성할 수도 있습니다.WCF 포스트/WebRequest 클래스 작품 웹 클라이언트 내가 다음과 같이 WCF 서비스를 선언하지
웹 클라이언트 코드
WebClient webClient = new WebClient();
webClient.Headers.Add("Content-Type", "application/xml");//; charset=utf-8
try
{
string result = webClient.UploadString("http://jeff-laptop/SalesAssist.ImageService/Process", "POST", data2);
}
catch (Exception ex)
{
var e = ex.InnerException;
}
의 HttpWebRequest 코드
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://jeff-laptop/SalesAssist.ImageService/Process");
request.ContentType = "application/xml";
request.Method = "POST";
request.KeepAlive = true;
using (Stream requestStream = request.GetRequestStream())
{
var bytes = Encoding.UTF8.GetBytes(data2);
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
}
var response = (HttpWebResponse)request.GetResponse();
var abc = new StreamReader(response.GetResponseStream()).ReadToEnd();
var data2 = @"<Product><Sku>3327</Sku><NameProduct</Name><Category>Bumper</Category><Brand Id='3'><Collection>14</Collection></Brand></Product>";
을 전송되는 XML 왜 HttpWebRequest를 작동 및 웹 클라이언트가 없다는 것입니다? Fiddler를 통해 보낸 헤더에 실제 차이점을 볼 수 없습니다.
요소의 문자열에 특수 문자가 포함되어 있다고 생각합니다. 제품 이름에 "Comfort®"를 전달하면 HttpWebRequest를 사용하여 작동하지만 WebClient에서는 작동하지 않습니다. WebClient는 전송하기 전에 인코딩을 수행합니까? –
다른 종류의 문제가 있었지만이 질문을 통해 제 코드를 수정할 기회를 얻었습니다. –