私はPythonの初心者で、クルーシブルにログインし、トークンを使用して他のサービスに渡すスクリプトを作成しようとしています。1) xml 要求を作成して応答を取得できますが、ヘッダーを conn.request に渡すとすぐに、HTTP エラー 415、サポートされていないメディア タイプと表示されます。私はこのトピックについて静かに少し調査を行い、残りの API が json リクエストをサポートしていない可能性があることを発見しましたが、Crucible は API が json をサポートしていると述べているため、他の問題のようです。2) 引数を渡そうとしたときfeauth を使用して生成された認証トークンは使用されていません。今のところ、それを url に追加しましたが、動作します。
同じことで私を助けてください、以下は私のスクリプトです
import httplib
import urllib
import json
from xml.etree.ElementTree import XML
import xml.dom.minidom
conn = httplib.HTTPSConnection("fisheye")
args=urllib.urlencode({'userName':'UNAME', 'password':'PWD'})
headers={'content-type':'application/json', 'accept':'application/json'}
#headers={'Authorization' : 'Basic %s' % base64.b64encode("username:password")}
r1 = conn.request("post", "/rest-service/auth-v1/login", args)
#status = r1[u'headers']['status']
#conn.connect()
r2 = conn.getresponse()
print r1,r2.status,r2.reason,r2
r3=r2.read()
print(r3)
r4=str(r3)
print r4
data = XML(r4).find("token").text
print data
# data1=urllib.quote_plus(data, safe=":")
# print data1
args=urllib.urlencode({'FEAUTH':data}).replace("%3A", ":")
print "args is", args
#args={}
req = conn.request("get","/rest-service/reviews-v1")
r3 = conn.getresponse()
status = r3.status
print "the url is"#, r3.getheader('Location')
url=r3.getheader('location', '')
print url
url1=r3.msg#.dict['location']
print url1
#print req.url
#print req.get_method()
print dir(req) # list lots of other stuff in Request
print "after sending open review request"
print r3
print req,r3.status,r3.reason,r3
r4=r3.read()
print(r4)
r5=str(r4)
print r5
# json_ob=json.loads(r3.read())
# print json_ob