我正在尝试将Python脚本转换为C,但遇到了一个问题
python脚本使用HTTPDigestAuth对API的进行身份验证
r = requests.get(apiUrl,auth=HTTPDigestAuth(apiuser, apipass))
我在C中尝试了以下方法,但是当我在调用后查看其显示为DENY的头文件时,它显然没有正确地进行身份验证,但是在Python中完全相同的凭据工作得很好
下面是我正在尝试的代码
string url = "www.test.com";
string UserName = "xx";
string Password = "L12312321312";
NetworkCredential wrCred = new NetworkCredential(UserName, Password);
WebRequest myWebRequest = WebRequest.Create(url);
myWebRequest.Method = "GET";
myWebRequest.Credentials = wrCred;
myWebRequest.PreAuthenticate = true;
//Get Reponse
WebResponse myWebResponse = myWebRequest.GetResponse();
//Data stream
Stream dataStream = myWebResponse.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
//Check
MessageBox.Show(myWebResponse.Headers.ToString());
reader.Close();
myWebResponse.Close();
如果我改变python脚本而使用basic auth(如下所示),那么我是否遗漏了一些东西,因为标题结果与我更改python脚本而使用basic auth是一样的,所以它不使用Digest auth而只是默认为basic
r = requests.get(apiUrl,auth=HTTPBasicAuth(apiuser, apipass))
如果我返回webresponse的状态码,它会返回OK,但不会再次返回正文或内容,这使我认为它没有使用Digest Auth
目前没有回答
相关问题 更多 >
编程相关推荐