0
我正在尝试发送http请求以请求REST服务。但是,我不断收到401错误。我在http头中包含了一个基本的授权信息,但它仍然收到了相同的401错误。任何人都可以帮我检查一下我的代码吗?由于向REST服务发送请求时出现C#401错误
public void getAuth(string reqUrl)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(reqUrl);
string userinfo = "test:test";
byte[] byteUserInfo = Encoding.ASCII.GetBytes(userinfo);
string code = Convert.ToBase64String(byteUserInfo);
req.Headers.Add("Authorization", "Basic " + code);
req.Method = "get";
req.ContentType = "application/x-www-form-urlencoded";
req.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Console.WriteLine(response);
}
static void Main(string[] args)
{
Tester2 test = new Tester2();
test.getAuth("http://MyHost/wiki/rest/prototype/1/search/site?query=property");
}
嗨lgoy,感谢您的回答。我试过了,它返回了一个400错误(错误的请求)。我检查了相关REST服务的开发人员手册,它提到了“使用包含'基本用户名:密码'的HTTP基本认证(授权HTTP头部),但是请注意,用户名:密码必须是base64编码的,URL还必须包含'os_authType =基本'查询参数“。我认为401错误的发生可能是因为我没有在我的URL中插入'os_authType = basic'。但是,他们没有提供关于在哪里插入此参数的进一步说明。 – Sid