and*_*ewb 34 c# rest basic-authentication
我是新来的api's并通过.NET调用它们
我有一个api:https://sub.domain.com/api/operations? param = value & param2 = value
api的注释说要授权我需要使用基本的访问身份验证 - 我该怎么做?
我目前有这个代码:
WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value¶m2=value");
req.Method = "GET";
//req.Credentials = new NetworkCredential("username", "password");
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Run Code Online (Sandbox Code Playgroud)
但是我得到了401未经授权的错误.
我缺少什么,如何使用基本访问身份验证形成api呼叫?
Adr*_*ian 53
如果API说要使用HTTP基本身份验证,则需要在请求中添加Authorization标头.我会改变你的代码看起来像这样:
WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?param=value¶m2=value");
req.Method = "GET";
req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("username:password"));
//req.Credentials = new NetworkCredential("username", "password");
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Run Code Online (Sandbox Code Playgroud)
当然,更换"username"并"password"使用正确的值.
例如,您还可以使用 RestSharp 库
var userName = "myuser";
var password = "mypassword";
var host = "170.170.170.170:333";
var client = new RestClient("https://" + host + "/method1");
client.Authenticator = new HttpBasicAuthenticator(userName, password);
var request = new RestRequest(Method.POST);
request.AddHeader("Accept", "application/json");
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json","{}",ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95075 次 |
| 最近记录: |