サーバーへの HttpWebRequest を形成しようとしています。使用しているユーザー名とパスワードをテストしたところ、対象の Web サイトのログイン フォームを使用して正しく認証されました。
HttpWebRequest に関連する 403 に関する Stack の他のすべての投稿を調べて読み、有効なユーザー エージェント、Accept フィールド、および ContentType を持つようにコードを更新しました。前の 3 つの属性のうちの 1 つが欠けていることが、人々が犯す最も一般的な間違いのようです。
私のコードは以下で、「Response Created The remote server returned an error: (403) Forbidden.」と表示されます。
{
HttpWebRequest request = buildRequest(url);
print("Response Created");
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
//Do stuff with the response
}
}
catch (Exception ex)
{
print(ex.Message);
}
Done.Visible = true;
}
private HttpWebRequest buildRequest(String url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
//I also tried authenticating in the header with no luck.
//byte[] authBytes = Encoding.UTF8.GetBytes("username:password".ToCharArray());
//req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(authBytes);
req.Method = "GET";
req.Credentials = new NetworkCredential("username","password");
req.UserAgent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27";
req.PreAuthenticate = true;
req.Accept = "application/json";
req.ContentType = "application/json; charset=utf-8";
req.KeepAlive = true;
return req;
}
ご協力いただきありがとうございます。