我一直在尝试一个星期了解如何获取和阅读HttpRequest的请求正文为JSON(它发送给我的JSON)。我认为在我的情况下它是一个WCF RESTful服务,但我不确定。到目前为止,我已经走过最远的是通过使用OperationContext.Current.RequestContext.RequestMessage.ToString()
这给了我请求主体的内容,但不是作为JSON它显示了它作为它的一个奇怪的XML转换,就像这样:WCF REST阅读JSON请求主体
<root type="object">
<reqPrices type="object">
<regionID type="null"/>
<cityCode type="string">New York</cityCode>
<userName type="string">test</Password>
</obj>
</root>
我已经有一个IService类用下面的代码:
namespace TBServices.Services.SilWebApi
{
[ServiceContract]
public interface IServiceSilWebApi
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "prices",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
Stream DoWorkPrices();
}
}
,并用下面的代码服务:
namespace TBServices.Services.SilWebApi
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class ServiceSilWebApi : BaseService, IServiceSilWebApi
{
...
public Stream DoWorkPrices()
{
string aa = OperationContext.Current.RequestContext.RequestMessage.ToString();
return new Stream();
}
...
}
}
在配置文件中的相关部分为:
<service name="TBServices.Services.SilWebApi.ServiceSilWebApi">
<endpoint address="" behaviorConfiguration="web" binding="customBinding" bindingConfiguration="RawReceiveCapable" contract="TBServices.Services.SilWebApi.IServiceSilWebApi" />
</service>
我是新来的WCF/REST/SOAP/Web服务,并且我读什么我能找到我想要做的,在这里和MSDN,但我仍然可以”弄明白了。我已经看到这个链接有一个非常类似的问题:https://social.msdn.microsoft.com/Forums/vstudio/en-US/d3b6307e-886c-4b8a-a7ff-00cd9490520b/read-incoming-data-as-json-wcf?forum=wcf,但我不明白它的大部分。 任何帮助将非常感激!
感谢,但我已经尝试过了,那么它甚至没有去这个功能运行时,就像它不认为它是匹配的 – Shirli