APIを休ませて.NET経由で呼び出すのは初めてです
私はAPIを持っています: https://sub.domain.com/api/operations?param=value¶m2=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;
ただし、401不正なエラーが表示されます。
私は何が欠けていますか、基本アクセス認証を使用してAPI呼び出しを形成するにはどうすればよいですか?
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;
もちろん、"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);