gpt4 book ai didi

python - 在Python中执行类似于Linux中的curl的URL - JenkinsAPI

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:40 28 4
gpt4 key购买 nike

我尝试通过执行以下操作来使用 shell 脚本触发一些构建:

export url='http://test.com';
export job_name='MY_JOB_NAME';

jso="{\"parameter\": [{\"name\":\"BRANCH\",\"value\":\"master\"}, {\"name\":\"GITURL\",\"value\":\"https://github.test.com/test/test.git\"}]}";

curl $url/job/$job_name/build --data-urlencode json="$jso";

这工作正常,但是当我尝试将其转换为 python 等效项时,它似乎没有触发 URL:

import requests
import json

url='http://test.com/job/MY_JOB_NAME/build'

params={'name':'release_1.5', 'GITURL':'https://github.test.com/test/test.git'}
payload = json.dumps(params)
resp = requests.get(url=url, data=payload)

执行时没有任何错误,但它不会触发我的 CI 机器上的构建。

最佳答案

你在这里做错了很多事情。我希望显而易见的第一件事是您发送的 JSON 数据完全不同。

除此之外,您遇到的主要问题是您的curl正在使用BODY中的urlencoded数据执行POST,而您的python请求正在使用urlencoded数据作为url中的单独参数执行GET。将您的 .get 更改为 .post,并将 params= 更改为 data=,您应该更接近您的预期目标。

resp = requests.post(url=url, data={'json':payload})

另请注意,我将您的有效负载作为 json 嵌入到 key 中,因为这就是您的 curl 中发生的情况。我不完全了解您的实现细节,但我希望这有助于您走上正轨。

关于python - 在Python中执行类似于Linux中的curl的URL - JenkinsAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com