외부 API에서 호출되는 REST WCF 서비스를 작성했습니다. 요청은 ISO-8859-1에서 XML POST 요청을 보냅니다. 이로 인해 내 서비스에서 400 건의 잘못된 요청 응답이 발생합니다. 여기 WCF 요청에서 ISO-8859-1 문자 집합
내 서비스 방법의 스텁이다 : 나는를 제거하면public class XmlContentTypeMapper : WebContentTypeMapper
{
public override WebContentFormat GetMessageFormatForContentType(string contentType)
{
return WebContentFormat.Xml;
}
}
이 유일한 작품 : 현재
[OperationContract]
[WebInvoke(Method ="POST", UriTemplate="/", RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
[FaultContract(typeof(String))]
XmlElement GetInstructions(XmlElement request);
, 내가 요청을 차단하고 해당 콘텐츠 형식을 반환하기 위해 노력하고있어 charset = 헤더에서 ISO-8859-1.
IClientMessageInspector 및 IDispatchMessageInspector를 사용하는 예를 보았습니다. 그러나 뭔가 빠진 것이 아니라면 SOAP에만 해당되는 것으로 보입니다.
이 문제를 해결하려면 어떻게해야합니까? 들어오는 요청을 제어 할 권한이 없습니다.
어떤 통찰력에도 감사드립니다.
POST http://localhost:54814/autocallerid.svc HTTP/1.1
Host: localhost:54814
Content-Type: text/xml, charset=ISO-8859-1
Content-Length: 1734
<?xml version="1.0" encoding="UTF-8"?>
<Request xmlns="urn:oasis:names:tc:xacml:2.0:context:schema:os">
<Subject SubjectCategory="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
....
무엇 XML 선언의 시작이 생겼는데? –