Ege*_*rak 2 c# authorization dotnet-httpclient
当我尝试GET使用下面的地址和授权值进行请求时,我没有任何问题。
地址:http://example.com/xyz.svc/branches/?latitude = 0&longitude = 0&range = 20000
标头密钥:授权
值:example; foo
当我尝试使用时,HttpCLient出现授权标头值的格式无效错误
这就是我尝试的方式
HttpClient client = new HttpClient();
string latitude = "0";
string longitude = "0";
string range = "2000";
string uri = "/xyz.svc/branches/?latitude=0&longitude=0&range=20000;
string value = "foo";
client.BaseAddress = new Uri("http://example.com");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Authorization", String.Format("example;{0}", value));
HttpResponseMessage response = await client.GetAsync(uri);
var responseJson = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseJson);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
通常,授权标头具有一种格式,{scheme} {token}该格式就是它正在尝试使用当前代码进行验证的格式。
可以将某些服务器配置为接受不同的格式。为避免客户验证标准格式,请使用TryAddWithoutValidation
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", String.Format("example;{0}", value));
Run Code Online (Sandbox Code Playgroud)
根据您的示例将具有以下请求标头
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", String.Format("example;{0}", value));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
992 次 |
| 最近记录: |