2017-11-23 4 views
0

Sitzung mit Python Anfragen, die mich zu JIRA verbinden und Ausgabe Informationen abrufen ...Python anfordern Session JIRA REST Post http 405

session = requests.Session() 
headers = {"Authorization": "Basic %s" % bas64_val} 
session.post(jira_rest_url, headers=headers) 
jira = session.get(jira_srch_issue_url + select_fields) 

# select_fields = the fields I want from the issue 

Nun Ich versuche, eine Nutzlast über den JIRA-API zu schreiben, eine mit fixed issue url zB „https://my_jira_server.com:1234/rest/api/latest/issue/KEY-9876

, die ein Fall der folgenden sein sollten, gegeben: https://developer.atlassian.com/jiradev/jira-apis/about-the-jira-rest-apis/jira-rest-api-tutorials/jira-rest-api-example-edit-issues

payload = { "update": { 
    "fixVersions": [ {"set": "release-2.139.0"} ] 
}} 
posted = session.post(jira_task_url, data=payload) 

# returns <Response [405]> 
# jira_task_url = https://my_jira_server.com:1234/rest/api/latest/issue/KEY-9876 

Aber das scheint nicht zu funktionieren! Ein Blick in die HTTP 405 Antwort schlägt vor, dass meine Nutzlast nicht richtig formatiert ist! Was insbesondere ist, ist nicht die einfachste Art zu diagnostizieren.

Was mache ich hier falsch? Jede Hilfe dazu wäre sehr willkommen.

Bitte beachten Sie, ich bin nicht suchen, um die Python jira Modul zu verwenden, ich bin mit requests.session mehrere Sitzungen für verschiedene Systeme heißt JIRA, Teamcity, etc ..

Antwort

0

die Lösung gefunden zu verwalten! Ich hatte zwei Probleme:

) Die tatsächliche Syntaxstruktur sein sollte:

fix_version = { "update": { "fixVersions": [ {"set" : [{ "name" : "release-2.139.0" }]}] 

) die Nutzlast Um sicherzustellen, tatsächlich als JSON präsentiert wird, Verwendung json.dumps() Womit ein Objekt und erzeugt eine Zeichenkette (siehe here), und stellt 'Content-Type' auf 'application/json':

payload = json.dumps(fix_version) 
app_json = { 'content-type': 'application/json' } 
session.put(https://.../rest/api/latest/issue/KEY-9876, headers=app_json, data=payload) 

Rather als zu versuchen, den JSON manuell zu definieren!

+0

Im Fall der JIRA Server API Referenz ... https://docs.atlassian.com/jira/REST/server/#api/2/issue .. Achten Sie darauf, den Unterschied zwischen POST und PUT zu beachten, wenn verschiedene Aktionen ausführen. – OneMoreNerd

Verwandte Themen