![](/img/trans.png)
[英]Change WCF service to accept content-type “application/xml;charset=utf-8”
[英]WCF SOAP Service Ignore Content-Type charset
我有一个新的WCF服务,一些现有的客户端需要能够与之通信。
有些客户端错误地发送带有'text / xml的Content-Type头的SOAP请求; 字符集= US-ASCII”。 目前,客户自己无法改变。
当他们发送请求时,他们会收到错误消息:
HTTP / 1.1 415无法处理消息,因为内容类型为'text / xml; charset = us-ascii'不是预期的类型'text / xml; 字符集= UTF-8'
有没有办法指示WCF服务忽略 Content-Type的字符集并假设utf-8?
这可能对你有所帮助,如果不是,我会删除答案。 我认为这可以在你的上下文中使用,但我不太确定,因为没有其他细节。
WebContentTypeMapper可用于覆盖正在发送的内容类型。 这是剪辑了WCF示例集中使用的代码。 在这个例子中,它接收发送的任何内容类型并将其映射到json,但您可以根据需要进行调整。
如果您还没有它,可以从WCF示例下载示例此示例位于..WF_WCF_Samples \\ WCF \\ Extensibility \\ Ajax \\ WebContentTypeMapper \\ CS
using System.ServiceModel.Channels;
namespace Microsoft.Samples.WebContentTypeMapper
{
public class JsonContentTypeMapper : System.ServiceModel.Channels.WebContentTypeMapper
{
public override WebContentFormat GetMessageFormatForContentType(string contentType)
{
if (contentType == "text/javascript")
{
return WebContentFormat.Json;
}
else
{
return WebContentFormat.Default;
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.