Kni*_*chi 6 jenkins python-requests
我正在使用以下命令行调用在jenkins CLI服务器上执行groovy脚本:
curl --user 'Knitschi:myPassword' -H "Jenkins-Crumb:1234" --data-urlencode "script=println 'Hello nice jenkins-curl-groovy world!'" localhost:8080/scriptText
Run Code Online (Sandbox Code Playgroud)
我目前正在将bash脚本转换为python,我想使用python 请求包(http://docs.python-requests.org/en/master/)做与上述调用等效的操作。
到目前为止,我有
import requests
url = 'http://localhost:8080/scriptText'
myAuth = ('Knitschi', 'myPassword')
crumbHeader = { 'Jenkins-Crumb' : '1234'}
scriptData = "script=println 'Hello cruel jenkins-python-groovy world!'"
response = requests.post(url, auth=myAuth, headers=crumbHeader, data=scriptData)
print(response.text)
response.raise_for_status()
Run Code Online (Sandbox Code Playgroud)
当命令行打印期望的字符串时,python代码不会。它也不会引发异常。
另外,我不确定是否应该使用requests.get()或requests.post()。我的网络技术知识非常有限。
感谢您的时间。
在参数中传递字符串时data,requests将其发布而不对其进行编码。
您可以使用quote_plus对您的帖子数据进行编码,
scriptData = "script=println 'Hello cruel jenkins-python-groovy world!'"
scriptData = urllib.parse.quote_plus(scriptData, '=')
Run Code Online (Sandbox Code Playgroud)
或用“&”和“=”分割来创建字典。
scriptData = "script=println 'Hello cruel jenkins-python-groovy world!'"
scriptData = dict(i.split('=') for i in scriptData.split('&'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |