(子问题:如何从PushStreamContent in WebAPI2中检索身体?)
我想从一个API发送一个压缩消息到另一个API。我是通过流媒体内容来做到这一点的。我目前有以下逻辑:
发送逻辑( PushStreamContent通过WebAPI2发送):
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检索流):
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文件时得到的结果是一样的。
发布于 2019-04-15 10:12:29
我通过删除HttpRequestMessage包装器并将HttpClient接收器更改为使用接受HttpContent的方法PostAsync发送请求来解决我的问题。我以前使用过接受SendAsync的泛型HttpRequestMessage方法。
我认为问题在于,通过将内容包装到HttpRequestMessage对象中,pushStreamContent的方法从未在传出请求中触发。也许HttpRequestMessage与PushStreamContent类型不兼容?
https://stackoverflow.com/questions/55489856
复制相似问题