2017-07-01 79 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标准,并可以让你添加页眉但是你的需要。