远程服务器返回错误

本文关键字:错误 返回 服务器 | 更新日期: 2023-09-27 18:25:38

我正在尝试读取类似so-的JSON数据流

string Username = "username";
string Password = "password";
string BaseUrl = "url";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(BaseUrl);
request.Credentials = new NetworkCredential(Username, Password);
request.ContentType = "application/json; charset=utf-8";
request.Headers["Authorization"] = "Basic " + authInfo;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    if (response.StatusCode != HttpStatusCode.OK) throw new Exception(string.Format("Server returned {0}'n {1}", response.StatusCode, response.ToString()));
    // Cheat and always expect utf-8
    string result = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8).ReadToEnd();
    richTextBox1.Text = result;

我不确定这是否是通过将用户名和密码作为字符串传入来获得身份验证的基本方法,但在一次执行中,我得到了以下错误-

远程服务器返回错误:(406)不可接受。

我该如何度过难关?

远程服务器返回错误

尝试标头身份验证,而不是通过NetworkCredentials 进行身份验证

public void SetBasicAuthHeader(WebRequest req, String userName, String userPassword)
{
  string authInfo = userName + ":" + userPassword;
  authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
  req.Headers["Authorization"] = "Basic " + authInfo;
}