如何访问WCF REST服务中的HTTP POST请求正文?
以下是服务定义:
[ServiceContract]
public interface ITestService
{
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "EntryPoint")]
MyData GetData();
}具体实现如下:
public MyData GetData()
{
return new MyData();
}我想使用以下代码来访问HTTP请求:
IncomingWebRequestContext context = WebOperationContext.Current.IncomingRequest;但是IncomingWebRequestContext只提供对头的访问,而不提供主体的访问。
谢谢。
发布于 2010-05-05 03:14:22
我认为最好的方式是不涉及WebOperationContext
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "EntryPoint", BodyStyle = WebMessageBodyStyle.Bare)]
MyData GetData(System.IO.Stream pStream);发布于 2010-09-09 20:14:45
使用
OperationContext.Current.RequestContext.RequestMessage
发布于 2015-01-08 16:34:33
很抱歉回答得太晚了,但我想我应该添加与UriTemplate参数一起工作的内容来获取请求正文。
[ServiceContract]
public class Service
{
[OperationContract]
[WebInvoke(UriTemplate = "{param0}/{param1}", Method = "POST")]
public Stream TestPost(string param0, string param1)
{
string body = Encoding.UTF8.GetString(OperationContext.Current.RequestContext.RequestMessage.GetBody<byte[]>());
return ...;
}
}从消息正文的原始字节中为body分配一个字符串。
https://stackoverflow.com/questions/1287802
复制相似问题