如何使用 DHL API(德国)

Posted

技术标签:

【中文标题】如何使用 DHL API(德国)【英文标题】:How to consume a DHL API (Germany) 【发布时间】:2019-01-30 20:31:31 【问题描述】:

我正在尝试跟踪货件以获取货件的状态和日期。为此,我正在查看德国网站上的 DHL 文档,但说实话并不是很好。

无论如何,我下载并阅读了一个测试套件,他们说:

如果您正在使用 GET 方法,您还可以查看链接, 所有必要的信息都包含在 URL 中。

在这里您可以找到完整的 URL 作为第一个条目:

获取 https://cig.dhl.de/services/sandbox/rest/sendungsverfolgung?xml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%20%3Cdata%20appname%3D%22zt12345%22%20language-code%3D%22de%22%20password%3D%22geheim%22%20piece-code%3D%2200340434161094015902%22%20request%3D%22d-get-piece-detail%22%2F%3E%20 HTTP/1.1

您也可以将此链接放入浏览器。 (这样做对我不起作用) 该链接应该以 XML 格式输出。

所以我的问题是……我怎样才能从 php 中的那个 URL 获取信息?然后能够检索其中的特定信息。

【问题讨论】:

对我来说,“链接”看起来像是已经进行了 url 编码,大多数浏览器会再次对输入 url 执行此操作。您必须将所有 %xx 替换为去十六进制字符,例如 %20->space 如果信息包含在url中,可以parse_str(php)url,url_decode(php)查询部分xml参数。你会得到一个.....字符串可能?包裹在一些 xml 废话中。所以你可以通过一个 xml 解析器来运行它,什么不是......听起来工作量很大^^ 那么,?xml= 之后的内容如下:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <data appname="zt12345" language-code="de" password="geheim" piece-code="00340434161094015902" request="d-get-piece-detail"/> 我不知道您要查找什么样的信息... 【参考方案1】:

我认为最好的方法是使用这个可以很好地实现 DHL API 方法的库: https://github.com/alfallouji/DHL-API

您也可以参考这篇文章,其中讨论了使用 API 的不同方式: DHL Tracking Api and PHP

【讨论】:

以上是关于如何使用 DHL API(德国)的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce REST API:自定义字段而不是产品名称

在 Magento 2 中启用 DHL Marketplace

如何使用 laravel 将多维数组传递给 API

如何使用亚马逊产品广告 API 搜索其他国家

Code 128 (dhl) 条码和条码中缺少的东西

如何使用 RFID 读卡器 (javax.smartcardio) 识别德国身份证?