簡體   English   中英

使用 python-requests 從 DHL 獲取跟蹤詳細信息

[英]Using python-requests to get tracking details from DHL

我正在嘗試創建一個腳本,以通過 DHL API 從我們公司獲取所有訂單的所有跟蹤詳細信息。

我嘗試執行以下腳本以連接到 DHL API。

import requests
import json
import http.client

# Replace with the correct URL
url = "https://api-eu.dhl.com/track/shipments?trackingNumber=*************&requesterCountryCode=DE&originCountryCode=DE&language=en"
headers = {
'Accept': 'application/json',
'DHL-API-Key': '*********'
        }
#connection = http.client.HTTPSConnection("https://api-eu.dhl.com")

myResponse = requests.get(url, headers)

if(myResponse.ok):
 to fetch binary content
    jData = json.loads(myResponse.content)

    print("The response contains {0} properties".format(len(jData)))
    print("\n")
    for key in jData:
        print (key + " : " + jData[key])
else:
  with description
    myResponse.raise_for_status()

但它顯示以下錯誤,

Traceback (most recent call last):
  File "/Users/sand/Documents/DHL Python.py", line 28, in <module>
    myResponse.raise_for_status()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api-eu.dhl.com/track/shipments?trackingNumber=***************&requesterCountryCode=DE&originCountryCode=DE&language=en

所以我想澄清一下,

我們需要做哪些事情才能將其連接到 DHL 跟蹤 API?

我在 DHL 開發門戶創建了一個帳戶並填寫了詳細信息,對於選擇 API 部分,我只能選擇 2,當我選擇其他 API 時,它顯示為 Ïn Progress”,所以我刪除了它。

我得到了“消費者密鑰”和“消費者秘密”,從哪里可以獲得令牌,或者這足以連接 API?

除此之外,我還需要做任何其他設置,因為我是新手,所以任何建議都會有很大幫助。

在此處輸入圖片說明

在此處輸入圖片說明 單擊隱藏使用者密鑰的星號下方的顯示鏈接。 消費者密鑰 == 'DHL-API-Key' 出現。


在此處輸入圖片說明

問題:從 DHL 獲取跟蹤詳細信息 - 我是否需要進行任何其他設置


從 python-requests.org 快速入門:

使用來自給定DHL 的requests而不是http.client -您必須執行的簡單 Python 代碼示例

import requests
url = "https://api-eu.dhl.com/track/shipments"

headers = {
    'Accept': 'application/json',
    'DHL-API-Key': 'ApiKeyHere'
    }
payload = {
    'trackingNumber': '7777777770',
    'service': 'express'
}

# This url is for testing 
url = 'https://httpbin.org/get'
resp = requests.get(url, params=payload, headers=headers)

print(resp.content)

輸出resp.content

 { "args": { "service": "express", "trackingNumber": "7777777770" }, "headers": { "Accept": "application/json", "Accept-Encoding": "gzip, deflate", "Dhl-Api-Key": "ApiKeyHere", "Host": "httpbin.org", "User-Agent": "python-requests/2.22.0" }, "origin": "54.224.8.86, 54.224.8.86", "url": "https://httpbin.org/get?trackingNumber=7777777770&service=express" }

用 Python 3.6 測試 - python-requests/2.22.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM