WCF POST参数和非JSON主体(base64)

时间:2015-01-29 19:51:13

标签: c# json wcf

我想不将JSON数据放在正文中并使用URI中的参数

我可以通过使用类似的东西来获取JSON数据。

[WebInvoke(Method = "POST",
    UriTemplate = "Checkin/SetPicture/{PatientProfileId}",
    BodyStyle = WebMessageBodyStyle.Bare, // this is key for combining params with Stream
    ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]

Stream SetPicture(string PatientProfileId, PictureData data);

和PictureData - 非常简单:

[DataContract]
class PictureData {
    [DataMember]
    internal string Base64 { get; set; }
}

如果我发布类似这样的内容(来自REST控制台/客户端)

    http://localhost:9001/Checkin/SetPicture/666
    Content-Type:  application/json
    Body - 
{ "Base64": "AAAAAA" }

如果我只想要身体中的Base64字符串,而不是JSON,我该怎么做?现在它给出了“服务器错误 - 检查日志”的响应,但当然日志中没有任何内容。这是合同中的解析问题,因为课程从未被击中。

ie Body - 

AAAAAA

这是一个相关的SO查询,但并不能完全满足我的需要。

Passing XML string in the body of WCF REST service using WebInvoke

0 个答案:

没有答案