【解決方法】C# rest api 外部呼び出しでユーザー名とパスワードを渡す方法

プログラミングQA


こんにちは、ユーザー名とパスワードとして認証を行う外部 REST API を呼び出そうとしています。 認証なしのAPIを呼び出す方法までコードを書くことができましたが、今ではユーザー名とパスワードを渡したいときに打たれます。

これは私のコードです

私が試したこと:

C#
public static string username = "xxx";
public static string password = "xxx";
public static string uri = "https://1.1.1.1/x/x";<


webrequest req = webrequest.create(uri);
req.method = "GET";
httpwebresponse res = null;
res = (httpwebresponse)req.getresponse();

string resu = null;

using (stream stm = res.getresponsestream())
{
streamreader sr = new streamreader(stm);
resu = sr.readtoend();
sr.close();
}
}

解決策 1

「基本」認証の場合は、次のように適切なヘッダーを設定するだけです。 このSOスレッド[^]:

C#
var encoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
byte[] headerBytes = encoding.GetBytes(username + ":" + password);
string headerValue = Convert.ToBase64String(headerBytes);
req.Headers.Add("Authorization", "Basic " + encoded);

基本認証スキーム | HTTP 認証 – HTTP | MDN[^]
rfc7617[^]

コメント

タイトルとURLをコピーしました