Python requests 调Jenkins登录接口,返回404,但请求地址、请求头、消息主题和抓包的内容都一样
#coding=utf-8
import requests
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"}
data = {"j_username": "admin",
"j_password": "111111",
"from": "/jenkins/"
"Submit": "登录"}
s = requests.session()
r = s.post(url, headers=headers, data=data)
print(r.content.decode('utf-8'))
代码如上,返回结果404!,如下图:
后多次实验对比,发现部署在我本地的Jenkins中传参字段from的值为"/jenkins/",而我们公司的Jenkins中字段from的值为“/”,后参照网上修改from的值为空,代码如下:
#coding=utf-8
import requests
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36"}
data = {"j_username": "admin",
"j_password": "111111",
"from": "", #from字段的值输了内容后报404,这个坑
"Submit": "登录"}
s = requests.session()
r = s.post(url, headers=headers, data=data)
print(r.content.decode('utf-8'))
不知道为什么传了一个字段的值,页面就返回404。
这个坑我要记录下,也许能帮到遇到同样问题的伙伴。
另外如果有人知道原因也请在评论区回复下,多谢!