【问题标题】:WCF SOAP Service Ignore Content-Type charsetWCF SOAP 服务忽略内容类型字符集
【发布时间】:2017-11-25 15:54:39
【问题描述】:

我有一个新的 WCF 服务,一些现有客户端需要能够与之通信。

有些客户端错误地发送了 Content-Type 标头为 'text/xml; 的 SOAP 请求;字符集=us-ascii'。目前,客户本身无法更改。

当他们发送请求时,他们会收到错误消息:

HTTP/1.1 415 无法处理消息,因为内容类型 '文本/xml; charset=us-ascii' 不是预期的类型 'text/xml; 字符集=utf-8'

有什么方法可以指示 WCF 服务忽略 Content-Type 的字符集并假定为 utf-8?

【问题讨论】:

标签: wcf soap character-encoding


【解决方案1】:

这可能对您有帮助,如果没有,我将删除答案。我认为这可以在您的上下文中使用,但不太确定,因为没有其他细节。

WebContentTypeMapper 可用于覆盖正在发送的内容类型。这是 WCF 示例集中使用的代码的片段。在此示例中,它接收发送的任何内容类型并将其映射到 json,但您可以根据需要进行调整。

如果您还没有,可以从WCF Samples 下载示例 此示例位于 ..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;
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 2020-04-05
    • 1970-01-01
    • 2012-08-17
    • 2020-04-20
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多