首页 > 解决方案 > System.Net.Http.HttpRequestException:将内容复制到流时出错。System.IO.IOException:响应提前结束

问题描述

有人可以协助将错误消息作为此问题的图块。我正在尝试使用 POST 方法获得响应,但是我收到如下错误消息。当我使用 POST 运行相同的东西时,它工作正常,不知道出了什么问题。错误信息

Error while copying content to a stream.
The response ended prematurely

代码:

public static async Task GetTransriptAsync(string srcBucket, List<string> SoundFileSet, IAmazonS3 s3client)
{

   using HttpClient httpClient = new HttpClient
   {
      Timeout = TimeSpan.FromMinutes(10)
   };

   var baseURL = new UriBuilder("https://sampleurl/api/v1/test");
   var queryParameter = HttpUtility.ParseQueryString(baseURL.Query);
   queryParameter["model"] = "testModel";
   baseURL.Query = queryParameter.ToString();

   Uri queryString = baseURL.Uri;
   
   foreach (var soundFile in SoundFileSet)
   {
      using HttpRequestMessage httpRequestMessage = new HttpRequestMessage();

      GetObjectRequest getObjectRequest = new GetObjectRequest
      {
         BucketName = srcBucket,
         Key = soundFile
      };

      using GetObjectResponse getObjectResponse = await s3client.GetObjectAsync(getObjectRequest);
      using Stream responseStream = getObjectResponse.ResponseStream;

   httpRequestMessage.Method = HttpMethod.Post;
   httpRequestMessage.RequestUri = queryString;
   httpRequestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", "xyzskskskks");
   httpRequestMessage.Content = new StreamContent(responseStream);

   var httpResponse = await httpClient.SendAsync(httpRequestMessage);  // This is where error is encountered

   if (httpResponse.IsSuccessStatusCode)
    {
       var audioCallResponse = await httpResponse.Content.ReadAsStringAsync();
       // Do some work here
    }
  }
}

标签: c#.net.net-core

解决方案


推荐阅读