首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >访问RESTful服务中的请求正文

访问RESTful服务中的请求正文
EN

Stack Overflow用户
提问于 2009-08-17 12:53:53
回答 9查看 55.7K关注 0票数 18

如何访问WCF REST服务中的HTTP POST请求正文?

以下是服务定义:

代码语言:javascript
运行
复制
[ServiceContract]
public interface ITestService
{
    [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "EntryPoint")]
    MyData GetData();
}

具体实现如下:

代码语言:javascript
运行
复制
public MyData GetData()
{
    return new MyData();
}

我想使用以下代码来访问HTTP请求:

代码语言:javascript
运行
复制
IncomingWebRequestContext context = WebOperationContext.Current.IncomingRequest;

但是IncomingWebRequestContext只提供对头的访问,而不提供主体的访问。

谢谢。

EN

回答 9

Stack Overflow用户

发布于 2010-05-05 03:14:22

我认为最好的方式是不涉及WebOperationContext

代码语言:javascript
运行
复制
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "EntryPoint", BodyStyle = WebMessageBodyStyle.Bare)]
MyData GetData(System.IO.Stream pStream);
票数 11
EN

Stack Overflow用户

发布于 2010-09-09 20:14:45

使用

OperationContext.Current.RequestContext.RequestMessage

票数 9
EN

Stack Overflow用户

发布于 2015-01-08 16:34:33

很抱歉回答得太晚了,但我想我应该添加与UriTemplate参数一起工作的内容来获取请求正文。

代码语言:javascript
运行
复制
[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分配一个字符串。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1287802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档