1
我寫了一個由外部API稱爲REST WCF服務設置。該請求正在發送ISO-8859-1中的XML POST請求。這會導致我的服務發出400個錯誤的請求響應。ISO-8859-1字符在WCF請求
這裏是我的服務方法的存根:
[OperationContract]
[WebInvoke(Method ="POST", UriTemplate="/", RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
[FaultContract(typeof(String))]
XmlElement GetInstructions(XmlElement request);
目前,我試圖攔截請求並返回相應的內容類型:
public class XmlContentTypeMapper : WebContentTypeMapper
{
public override WebContentFormat GetMessageFormatForContentType(string contentType)
{
return WebContentFormat.Xml;
}
}
這隻能如果我刪除了charset = ISO-8859-1標題。
我見過使用IClientMessageInspector和IDispatchMessageInspector的例子,但這些似乎具體到SOAP,除非我失去了一些東西。
我能做些什麼來解決這個問題?我無法控制傳入的請求。
感謝您的任何見解。
這裏的XML請求的第一部分:
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聲明的開頭是什麼樣子? –