2017-07-01 82 views
0

注意:此問題與this one類似,但其建議答案不適用於此處。使用HttpClient,發送沒有模式的授權令牌

我試圖訪問this API,這是尋找一個看起來像這樣的標題:

Authorization: {token} 

注意沒有任何認證方案。

我曾嘗試做:

myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("", authToken); 

這就造成了一個ArgumentException說,我不能傳遞一個空字符串。

我也曾嘗試都:這兩者

myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(authToken); 

myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken); 

導致出現FormatException。

好像有東西逼着我以符合我的授權頭的標準格式,但我試圖訪問的服務不使用標準格式。

+0

嘗試添加接受型 myHttpClient.DefaultRequestHeaders.Add( 「接受」, 「應用程序/ JSON」); –

回答

0

提到似乎經常發生的,之後我問我找到答案的問題。

是HttpClinet抱着我的標準格式是HTTP協議本身,它需要一個認證方案,但有一個變通。

代替:

myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken); 

您可以使用:

myHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", authToken); 

而忽略HTTP標準,並可以讓你添加頁眉但是你的需要。