如何检查urllib是否正在验证SSL证书?

时间:2019-05-20 20:03:40

标签: python urllib rally pyral

我正在编写一个Python脚本来与Rally WSAPI进行交互。我使用的是Python 3.6.1,据了解,默认情况下应检查SSL证书。

使用Pyral会收到一个SSL错误,尽管我可以通过关闭verify_ssl_cert来停止该错误。我不使用urllib.request,这表明urllib不会进行检查,即使我的版本中应该默认检查也是如此。

使用此pyral版本,我会收到SSL错误:

from pyral import Rally, rallySettings, RallyRESTAPIError

my_server      = "rally1.rallydev.com"

my_username    = "************"

my_password    = "***********"

rally = Rally(my_server, my_username,my_password)


workspaces = rally.getWorkspaces()

for wksp in workspaces:

    print("    Worspace: ObjectID=%12s  Name='%s'" % (wksp.oid, wksp.Name))

    projects = rally.getProjects(workspace=wksp.Name)

    for proj in projects:

        print("            Project: ObjectID=%12.12s  Name='%s'" % (proj.oid, proj.Name))

错误:pyral.context.RallyRESTAPIError:SSL证书验证失败

将Rally通话更改为

rally = Rally(my_server, my_username, my_password, verify_ssl_cert=False)

将错误切换为警告。

这是没有错误的urllib版本

import urllib.request, json

# create a password manager

password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm()



# Add the username and password.

# If we knew the realm, we could use it instead of None.

top_level_url = "https://rally1.rallydev.com"

username = "****************"

password = "********************"

password_mgr.add_password(None, top_level_url, username, password)



handler = urllib.request.HTTPBasicAuthHandler(password_mgr)



# create "opener" (OpenerDirector instance)

opener = urllib.request.build_opener(handler)



a_url = "https://rally1.rallydev.com/slm/webservice/v2.0/HierarchicalRequirement/1234567" #story example

# use the opener to fetch a URL

opener.open(a_url)

# Install the opener.

# Now all calls to urllib.request.urlopen use our opener.

urllib.request.install_opener(opener)

response = urllib.request.urlopen(a_url)

data = json.loads(response.read())


print(data) 

0 个答案:

没有答案