Es gibt ein cURL Beispiel in Abschnitt Triggering a Build
von TeamCity 9.x Documentation:Wie wird das Python-Request-Modul und die TeamCity-API zum Auslösen eines Builds verwendet?
curl -v -u user:password http://teamcity.server.url:8111/app/rest/buildQueue --request POST --header "Content-Type:application/xml" --data-binary @build.xml
Ich mag würde wissen, wie es in einen äquivalenten Python-Skript zu konvertieren (mit POST
Anforderung vom requests
Modul)?
BTW, habe ich versucht, das folgende Python-Skript bekam aber eine solche Antwortcode 400 (Bad Request)
:
url = "http://myteamcity.com:8111/httpAuth/app/rest/buildQueue/"
headers = {'Content-Type': 'application/json'}
data = json.dumps({'buildTypeId': 'MyTestBuild'})
r = requests.post(url, headers=headers, data=data, auth=("username", "password"), timeout=10)
print "r = ", r
>> r = <Response [400]>
Wenn die Content-Type
in headers
in Accept
ändern, bekam einen anderen Antwortcode 415 (Unsupported Media Type)
:
headers = {'Accept': 'application/json'}
>> r = <Response [415]>
Der Curl Beispiel * XML * sendet, nicht JSON. Warum versuchst du * JSON * zu senden? –
Die Dokumentation ist ein wenig durcheinander; Es scheint mir, dass dieser API-Endpunkt * nur * XML im POST-Body akzeptieren kann. –
Soweit ich weiß, verwendet Requests Modul JSON Datenformat, wie in der Dokumentation gezeigt: http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests –