在执行多部分时如何从httpclient c#获取响应正文

在执行多部分时如何从httpclient c#获取响应正文,c#,windows-phone,multipartform-data,dotnet-httpclient,C#,Windows Phone,Multipartform Data,Dotnet Httpclient,我正在尝试使用System.Net.Http.HttpClient发布多部分数据, 获得的响应为200 ok 以下是我使用的方法: public async Task postMultipart() { var client = new HttpClient(); client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form

我正在尝试使用System.Net.Http.HttpClient发布多部分数据, 获得的响应为200 ok

以下是我使用的方法:

 public async Task postMultipart()
        {
            var client = new HttpClient();
            client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data");


            // This is the postdata
            MultipartFormDataContent content = new MultipartFormDataContent( );
            content.Add(new StringContent("12", Encoding.UTF8), "userId");
            content.Add(new StringContent("78", Encoding.UTF8), "noOfAttendees");
            content.Add(new StringContent("chennai", Encoding.UTF8), "locationName");
            content.Add(new StringContent("32.56", Encoding.UTF8), "longitude");
            content.Add(new StringContent("32.56", Encoding.UTF8), "latitude");

            Console.Write(content);
            // upload the file sending the form info and ensure a result.
            // it will throw an exception if the service doesn't return a valid successful status code
            await client.PostAsync(fileUploadUrl, content)
                .ContinueWith((postTask) =>
                {
                    postTask.Result.EnsureSuccessStatusCode();
                });

        }
  • 如何从该方法中获取响应体

    • 提示:您正在呼叫
      PostAsync
      ,并等待结果。。。但之后就什么也不做了。当您处于一个异步世界中,并且可以简单地处理它时,也不清楚为什么要使用
      ContinueWith

      var response = await client.PostAsync(fileUploadUrl, content);
      response.EnsureSuccessStatusCode();
      // Now do anything else you want to with response,
      // e.g. use its Content property
      
      为了回应Jon(人们并不只是不同意Jon),不要将异步/等待世界与预异步/等待(
      ContinueWith
      )世界混为一谈

      要以字符串形式获取响应正文,需要第二次等待:

      var response = await client.PostAsync(fileUploadUrl, content);
      response.EnsureSuccessStatusCode();
      var body = await response.Content.ReadAsStringAsync();
      

      找不到获取响应正文的方法,response.content.toString()正在返回System.Net.Http。StreamContent@eeadev:你看了HttpContent类及其各种方法了吗?谢谢,但我没有太多时间,而且我对c#和MSDN不熟悉,所以询问你会更快。对不起,我太懒了