2015-10-03 96 views
9

什麼時候應該在HttpClient頭文件中使用HttpRequestMessage對象中的頭文件?HttpClient Headers vs HttpRequestMessage頭文件

我們需要添加授權(總是在不斷變化)和一些自定義標題(總是在不斷變化)

問題

  1. 這是首選的方法是什麼?
  2. 我是不是應該將通用的 標題(在所有請求中相同)添加到HttpClient,並向HttpRequestMessage對象請求基於 的標頭?

    //HttpRequestMessage Code 
        HttpRequestMessage reqmsg =new HttpRequestMessage(); 
        reqmsg.Headers.Authorization =new AuthenticationHeaderValue("some scheme"); 
        reqmsg.Headers.Add("name","value"); 
    
        //HttpClient Code 
        HttpClient client =new HttpClient(); 
        client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("some scheme"); 
        client.DefaultRequestHeaders.Add("name", "value"); 
    

回答

8
  1. 哪個是優選的方法?我是否應該向HttpClient
  2. 添加公共標頭(在所有請求中相同)並向HttpRequestMessage對象請求基於標頭?

您的問題自動回答。

DefaultRequestHeaders是將成爲任何請求的一部分,這是一個加號,因爲你可以避免重複自己添加一些頭一個。另一方面,HttpRequestMessage.Headers將只是該請求的一部分。

什麼時候應該使用其中一種?我將使用兩個例子:

  • 我需要發送一個OAuth承載令牌在每一個要求,所以我設置Authorization頭中的HttpClient.DefaultRequestHeaders的一部分,如果我需要刷新的道理,我只是需要在那裏重新設置。

  • 我需要根據某些條件發送一個序列化爲JSON或XML的實體。也就是說,我將在每個請求的基礎上設置Content-type標題。

相關問題