我有一个新的WCF服务,一些现有的客户需要能够与之沟通。
有些客户端不正确地发送SOAP请求,其内容类型标头为“text/xml;charset=us-ascii”。目前,客户本身是无法改变的。
当他们发送请求时,会收到错误消息:
HTTP/1.1 415无法处理消息,因为内容类型'text/xml;charset=us-ascii‘不是预期的类型'text/xml;charset=utf-8’
有没有办法指示WCF服务忽略内容类型的字符集并假定utf-8?
发布于 2017-06-29 19:49:34
这可能对你有帮助,如果不是,我会删除答案。我认为这可以用于您的上下文,但我不太确定,因为没有其他细节。
可以使用WebContentTypeMapper覆盖正在发送的内容类型。这是WCF示例集中使用的代码的片段。在本例中,它接受发送的任何内容类型,并将其映射到json,但您可以根据需要对其进行调整。
如果您还没有它,您可以从..WF_WCF_Samples\WCF\Extensibility\Ajax\WebContentTypeMapper\CS下载示例,这个示例位于WCF样本中
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;
}
}
}
}https://stackoverflow.com/questions/44698210
复制相似问题