首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法读取ASP.NET WebApi控制器中的Request.Content

无法读取ASP.NET WebApi控制器中的Request.Content
EN

Stack Overflow用户
提问于 2012-04-13 00:32:20
回答 10查看 58.1K关注 0票数 25

我正在使用TransferMode.Streamed HttpSelfHostConfiguration exe中的WebApi编写代理。

当我使用fiddler发布到我的ApiController时,由于某种原因,我无法读取Request.Content -即使我有POSTed数据,它也会返回"“

代码语言:javascript
复制
public class ApiProxyController : ApiController
{

    public Task<HttpResponseMessage> Post(string path)
    {
        return Request.Content.ReadAsStringAsync().ContinueWith(s =>
        {
            var content = new StringContent(s.Result); //s.Result is ""
                CopyHeaders(Request.Content.Headers, content.Headers);
            return Proxy(path, content);
        }).Unwrap();
    }

    private Task<HttpResponseMessage> Proxy(string path, HttpContent content)
    {
        ...
    }
}

这是我的web请求

代码语言:javascript
复制
POST http://localhost:3001/api/values HTTP/1.1
Host: localhost:3001
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Content-Type: application/json
Content-Length: 26

{ "text":"dfsadfsadfsadf"}

我做错了什么?为什么s.Result返回的是空字符串而不是原始json?

EN

Stack Overflow用户

发布于 2020-01-01 04:07:40

下面的答案展示了如何从WebAPI中读取POST数据:

代码语言:javascript
复制
string postData;
using (var stream = await request.Content.ReadAsStreamAsync())
{
    stream.Seek(0, SeekOrigin.Begin);
    using (var sr = new StreamReader(stream))
    {
        postData = await sr.ReadToEndAsync();
    }
}
票数 1
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10127803

复制
相关文章

相似问题

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