我正在编写 WCF REST 服务以通过我的 WCF REST 服务接收 AWS SNS 通知消息。
Content-Type: text/plain; charset=UTF-8
然而,WCF REST 仅支持 XML 和 JSON,但根据Amazon 文档,由于遗留原因,Amazon SNS 使用标头发布通知:
POST / HTTP/1.1
Content-Type: text/plain; charset=UTF-8
// ...
{
"Type" : "Notification",
// ...
"UnsubscribeURL" : "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&..."
}
Run Code Online (Sandbox Code Playgroud)
当我使用亚马逊等“文本/纯文本”内容类型调用我的服务时,出现错误:
请求错误。
服务器在处理请求时遇到错误。异常消息是“传入消息具有意外的消息格式‘Raw’”。该操作的预期消息格式为“Xml”;“杰森”。这可能是因为尚未在绑定上配置 WebContentTypeMapper。有关更多详细信息,请参阅 WebContentTypeMapper 的文档。有关更多详细信息,请参阅服务器日志。
我当前的代码:
public interface MyServiceInterface
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "/AmazonIPChanges")]
Task AmazonIPChanges(SNSNotificationMessage data);
}
[DataContract]
public class SNSNotificationMessage
{
[DataMember]
public string Type { get; set; }
// ...
[DataMember] …
Run Code Online (Sandbox Code Playgroud)