我正在尝试使用
的Python发送request.postusername = "devoops123@mdf.nct.com"
password = "ChangemeinNv!"
我的脚本有
start_build_url = 'http://{0}/jenkins/job/{1}/job/{2}/buildWithParameters?token={3}&{4}'.format(
jenkins_uri, folder_name, job_name, build_token, build_param)
r = requests.post(
start_build_url, data={
'username': 'auth_username','password': 'auth_pass'}
)
执行脚本时出现401 Authentication
问题
在将密码作为参数传递给脚本时,我尝试了以下方法,但似乎无济于事:
%21
代替!
的{{1}}和%40
@
转义两个特殊字符\
答案 0 :(得分:3)
Jenkins希望您使用HTTP的Basic authentication功能发送用户名和密码。 requests
可以handle this natively。参见Jenkins Remove access API documentation:
Jenkins受到保护后,可以使用HTTP BASIC身份验证来认证远程API请求。
只需将用户名和密码放在作为auth
参数传入的元组中即可:
start_build_url = 'http://{0}/jenkins/job/{1}/job/{2}/buildWithParameters?token={3}&{4}'.format(
jenkins_uri, folder_name, job_name, build_token, build_param)
r = requests.post(
start_build_url, auth=(username, password),
)
username
和password
的值都不需要转义,请将其留给requests
来为您担心。