HttpResponseMessage獲取請求響應體內容


問題描述

使用httpClient獲取的HttpResponseMessage類型的response,直接對其toString()獲取的是請求的響應頭,並沒有獲取響應體的內容

解決辦法

HttpResponseMessage.Content 屬性聲明 HTTP 響應的內容。HttpContent.ReadAsStringAsync 方法將 HTTP 內容作為異步操作寫入到字符串中。

參考Demo

下面以Azure Face API為案例簡要介紹其使用方法

using System;
using System.Net.Http;
using System.Text;
using System.Web;

namespace FaceApiDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            MakeRequest();
            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }

        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "<key>");//Face API key

            // Request parameters
            queryString["returnFaceId"] = "true";
            queryString["returnFaceLandmarks"] = "false";
            queryString["returnFaceAttributes"] = "age";
            var uri = "https://api.cognitive.azure.cn/face/v1.0/detect?" + queryString;

            HttpResponseMessage response;

            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes("{\"url\":\"http://imgsrc.baidu.com/baike/pic/item/4034970a304e251ff1e3819aa486c9177f3e53bf.jpg\"}");//圖片URL

            using (var content = new ByteArrayContent(byteData))
            {
                response = await client.PostAsync(uri, content);
            }

            //response result
            string result = await response.Content.ReadAsStringAsync();
            Console.WriteLine("response:" + result);
        }
    }
}

參考鏈接:

如何使用System.Net.Http.HttpClient

Face API

Git Hub項目


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM