2015-10-03 14 views
9

Khi nào chúng ta nên sử dụng các tiêu đề trong đối tượng HttpRequestMessage trên các tiêu đề trong HttpClient ??HttpClient Headers vs HttpRequestMessage Headers

Chúng tôi đã cần thêm Authorization (luôn thay đổi) và vài tiêu đề tùy chỉnh (luôn thay đổi)

Câu hỏi

  1. Đó là phương pháp ưa thích?
  2. Tôi có nên thêm các tiêu đề phổ biến (giống nhau trên tất cả các yêu cầu) vào HttpClient và yêu cầu tiêu đề dựa vào đối tượng HttpRequestMessage không ??

    //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"); 
    

Trả lời

8
  1. Đó là phương pháp ưa thích? Tôi có nên thêm tiêu đề phổ biến (giống nhau trên tất cả các yêu cầu) vào HttpClient
  2. và yêu cầu tiêu đề dựa trên đối tượng HttpRequestMessage không ??

Câu hỏi của bạn được tự động trả lời.

DefaultRequestHeaders là những phần sẽ là một phần của bất kỳ yêu cầu nào, đó là điểm cộng vì bạn sẽ có thể tránh lặp lại việc thêm một số tiêu đề một lần nữa. Mặt khác, HttpRequestMessage.Headers sẽ chỉ là một phần của yêu cầu đó.

Khi nào bạn nên sử dụng cái kia? Tôi sẽ sử dụng hai ví dụ:

  • tôi cần phải gửi một mã thông báo OAuth bearer như là một phần của tất cả các yêu cầu vì vậy tôi thiết lập các Authorization tiêu đề trong HttpClient.DefaultRequestHeaders, và nếu tôi cần phải làm mới được dấu hiệu, tôi chỉ cần phải đặt lại ở đó.

  • Tôi cần gửi một thực thể được tuần tự hóa dưới dạng JSON hoặc XML tùy thuộc vào một số điều kiện. Tức là, tôi sẽ đặt tiêu đề Content-type theo yêu cầu.

Các vấn đề liên quan