如果我想获得特定订单,我会这样做:
import requests, json
r = requests.get('https://mycompany.com/api/orders/4&ws_key=XXX&output_format=JSON')
print r
它工作正常。它提供了有关订单号4的所有信息。
问题是当我想要更新特定字段时,例如参考字段。如果我这样做:
data={'ws_key':'XXX',
'output_format':'JSON',
'reference': 'TEST'}
r = requests.post('https://mycompany.com/api/orders/4', data=data)
print r
我得到这个输出:
[401] Unauthorized
我试过这个其他选择:
headers = {'Authorization' : 'Basic XXX'}
data={'output_format':'JSON',
'reference': 'TEST'}
r = requests.post('https://mycompany.com/api/orders/4', data=data, headers=headers)
print r
但结果相同:
[401] Unauthorized
我该如何修改该字段?
正如您的第一个示例所示,您的参数应该在url而不是data中。所以你的代码就是
import requests
try:
from urllib import parse
except Exception as e:
import urllib as parse
payload = {'ws_key':'XXX',
'output_format':'JSON'}
data = {'reference': 'TEST'}
url = 'https://mycompany.com/api/orders/4&{}'.format(parse.urlencode(payload))
r = requests.put(url,data=data)
print(r.url)
要么
payload = {'ws_key':'XXX',
'output_format':'JSON',
'reference': 'TEST'}
url = 'https://mycompany.com/api/orders/4&{}'.format(parse.urlencode(payload))
但正如文档所述,您应该放置XML文件而不是数据或json。
Prestashop Python API:https://github.com/prestapyt/prestapyt