我已经创建了一些python代码来与Exact在线通信,并希望通过使用python和urllib2来发送GET和POST请求。在
现在,当我尝试发送一个简单的GET请求时,它包含诸如“Accept:application/json”这样的头,当我在一个测试应用程序(SOAP-UI)中尝试它时,它就起作用了
我的python代码如下:import urllib2, urllib, json, requests, base64
data = urllib.urlencode({
})
request = urllib2.Request(
url="https://start.exactonline.nl/api/v1/"+divis+"/salesorder/SalesOrderLines?access_token=" + access,
data=data)
base64string = base64.encodestring('%s:%s' % (user,password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
request.add_header("Content-Type", "application/json+xml")
request.add_header("Accept", "application/json+xml")
request= urllib2.urlopen(request)
print request_open
response = request_open.read()
print response
结果是
^{pr2}$
我已经尝试了这两种内容类型和接受,以及没有另一种。所有人都给出了同样的415回应。
当我试着只用request.add_header("Content-Type", "application/json")
或者request.add_header("Content-Type", "application/atom+xml")
我得到的答复如下:urllib2.HTTPError: HTTP Error 400: Bad Request
我想这可能是这一切的原因。在
有人知道怎么解决这个问题吗?在
也许值得一提的是,当我用另一个应用程序测试这个时,响应是Content-Type: application/atom+xml;charset=utf-8