无法通过python中的公司代理将正确的凭据传递给服务器,但能够在R中做到这一点

时间:2019-07-17 17:17:04

标签: python r authentication ntlm

我正在尝试将R程序转换为Python。 R程序使用以下代码将请求传递到服务器:

auth <- function() {
    httr::authenticate(Sys.getenv("proxy_usr"), 
                   Sys.getenv("proxy_auth"), type = "ntlm")
}

raw_data <- httr::POST(url_base, body = url_options, auth()) %>% 
    httr::content("text")

这完全符合预期。这是我对Python的了解:

import os
import requests
from requests_ntlm import HttpNtlmAuth 
user = os.environ.get('proxy_usr', "")
auth_pass = os.environ.get('proxy_auth', "")
response = requests.post(url_base, data = url_options, auth = 
    HttpNtlmAuth(user, auth_pass))
return (response.text)

这给了我一个HTML文件,上面写着“ 401-未经授权:由于凭据无效而拒绝访问”。我尝试了很多这样的变种,但都没有用。造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

您可以尝试HTTPProxyAuth

{% for post in posts %}
   {% include '_post.html' %}
{% endfor %}