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