首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从从HttpRequestMessage.Content检索的WebApi流中检索数据

从从HttpRequestMessage.Content检索的WebApi流中检索数据
EN

Stack Overflow用户
提问于 2019-04-03 07:54:23
回答 1查看 578关注 0票数 0

(子问题:如何从PushStreamContent in WebAPI2中检索身体?)

我想从一个API发送一个压缩消息到另一个API。我是通过流媒体内容来做到这一点的。我目前有以下逻辑:

发送逻辑( PushStreamContent通过WebAPI2发送):

代码语言:javascript
复制
private async Task InitPushStreamContent(Stream stream, HttpContent content, TransportContext transportContext)
{
    var tstText = "Testing 1-2-3";

    var byteArray = Encoding.ASCII.GetBytes(tstText);
    await new MemoryStream(byteArray).CopyToAsync(stream);

    stream.Close();
}
public async Task Execute() {
  using (PushStreamContent pushContent = new 
  PushStreamContent(InitPushStreamContent))
  {
    var requestMessage = new HttpRequestMessage
    {
        Content = pushContent
    };
    return await ResendMessagesOtherStage("someParameter", "someParameter",
        "someParameter",
        "someParemeter", requestMessage);
  }
}

检索逻辑(另一个API检索流):

代码语言:javascript
复制
public async Task<IHttpActionResult> UploadSomethingAsync(HttpRequestMessage request)
{
   var stream = await request.Content.ReadAsStreamAsync();
   var length = (int)stream.Length;
   var byteArray = new byte[length];
   var message = Encoding.ASCII.GetString(byteArray, 0, byteArray.Length);
}

我检索到的消息不是: “测试1-2-3”,但是: {“内容”:{“标题”:[{“键”:“内容-类型”,“值”:“应用程序/八位流”}

我不知道我在监督什么。我在检索zip文件时得到的结果是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-15 10:12:29

我通过删除HttpRequestMessage包装器并将HttpClient接收器更改为使用接受HttpContent的方法PostAsync发送请求来解决我的问题。我以前使用过接受SendAsync的泛型HttpRequestMessage方法。

我认为问题在于,通过将内容包装到HttpRequestMessage对象中,pushStreamContent的方法从未在传出请求中触发。也许HttpRequestMessage与PushStreamContent类型不兼容?

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

https://stackoverflow.com/questions/55489856

复制
相关文章

相似问题

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