繁体   English   中英

WCF SOAP服务忽略内容类型字符集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM