如何为 USPS django 发出 Curl 请求 python

How to make Curl request for USPS django python

我正在使用 USPS API 跟踪包裹我想为跟踪包裹发出 curl 请求。

这是我在 USPS API 跟踪包裹文档中找到的内容。

> http://production.shippingapis.com/ShippingApi.dll?API=TrackV2&XML=<TrackFieldRequest
> USERID="xxxxxxxxxx"> <TrackID ID="XXXXXXXXXXXXX">  </TrackID> 
> 
> </TrackFieldRequest>

现在我正在尝试在 django 中发出 curl 请求,这就是我正在做的,但它 working.Is 这不是在 django 中解析 xml/url 的正确方法。

def get_tracking_status(self):
        try:
            headers = {'Content-Type': 'application/xml'}
            xml = "<TrackFieldRequest USERID='xxxxxxxxxx'><TrackID ID='XXXXXXXXXXXXX'></TrackID></TrackFieldRequest>"
            requests.post("http://production.shippingapis.com/ShippingApi.dll?API=TrackV2", headers=headers, data=xml)
        except Exception as e:
            print e

您通过 CURL 发出的请求有两个查询参数:API,其值为 "TrackV2",以及 XML,其值为 xml blob。你应该对请求做同样的事情:

requests.get("http://production.shippingapis.com/ShippingApi.dll", data={'API': 'TrackV2', 'XML': xml}, headers=headers)

另请注意,它似乎是 GET,而不是 POST。