You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian12.5调用DHL API遇curl(52)空回复问题求助

DHL追踪API调用返回curl: (52) Empty reply from server问题排查

问题背景

在Debian 12.5系统上使用curl调用DHL追踪API时,出现curl: (52) Empty reply from server错误。已确认以下信息:

  • DHL未封禁当前服务器IP
  • 相同请求在其他服务器可正常执行
  • 尝试添加--tlsv1.2强制使用TLS1.2后问题依旧

执行的curl命令及完整日志

原执行命令

curl -v -k -X -L GET 'https://api-eu.dhl.com/track/shipments?trackingNumber=7670087740' -H 'DHL-API-Key: WGP0HGo26c5OFRclZHqPHTAEpXXXXXXX'

详细日志输出

*   Trying 172.66.40.55:80...
* Connected to GET (172.66.40.55) port 80 (#0)
> -L / HTTP/1.1
> Host: GET
> User-Agent: curl/7.88.1
> Accept: */*
> DHL-API-Key: WGP0HGo26c5OFRclZHqPHTAEpXXXXXXX
>
< HTTP/1.1 403 Forbidden
< Date: Fri, 28 Jun 2024 21:10:23 GMT
< Content-Type: text/plain; charset=UTF-8
< Content-Length: 16
< Connection: close
< X-Frame-Options: SAMEORIGIN
< Referrer-Policy: same-origin
< Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Expires: Thu, 01 Jan 1970 00:00:01 GMT
< Server: cloudflare
< CF-RAY: 89b0a9cc4e284c78-HEL
<
* Closing connection 0
error code: 1003*   Trying 34.89.220.138:443...
* Connected to api-eu.dhl.com (34.89.220.138) port 443 (#1)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN: server accepted http/1.1
* Server certificate:
*  subject: C=DE; ST=Nordrhein-Westfalen; L=Bonn; O=Deutsche Post AG; CN=api.dhl.com
*  start date: Apr  2 06:41:20 2024 GMT
*  expire date: Apr  2 06:40:20 2025 GMT
*  issuer: C=DE; O=Deutsche Post AG; CN=DPDHL Global TLS CA - I5
*  SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
* using HTTP/1.1
> -L /track/shipments?trackingNumber=7670087740 HTTP/1.1
> Host: api-eu.dhl.com
> User-Agent: curl/7.88.1
> Accept: */*
> DHL-API-Key: WGP0HGo26c5OFRclZHqPHTAEpXXXXXXX
>
* Empty reply from server
* Closing connection 1
* TLSv1.2 (OUT), TLS alert, close notify (256):
curl: (52) Empty reply from server

问题分析与解决方案

从日志可定位核心问题:

  1. curl参数顺序错误:-X -L GET的写法违反参数规则,-X后应直接跟请求方法,-L是独立参数。错误写法导致curl将-L识别为请求方法、GET识别为目标主机,出现Connected to GET (172.66.40.55) port 80的异常日志。
  2. 后续即使连接到正确的DHL API地址,混乱的参数导致请求格式错误(请求行变为-L /track/shipments?trackingNumber=7670087740 HTTP/1.1),服务器无法识别,最终返回空回复。

修正后的curl命令

调整参数顺序,-L作为独立参数前置,-X GET可省略(GET为curl默认请求方法):

# 写法1:省略默认GET请求方法
curl -v -k -L 'https://api-eu.dhl.com/track/shipments?trackingNumber=7670087740' -H 'DHL-API-Key: WGP0HGo26c5OFRclZHqPHTAEpXXXXXXX'

# 写法2:明确指定GET请求方法
curl -v -k -L -X GET 'https://api-eu.dhl.com/track/shipments?trackingNumber=7670087740' -H 'DHL-API-Key: WGP0HGo26c5OFRclZHqPHTAEpXXXXXXX'

额外建议

  • 移除-k参数,确保证书验证正常。若Debian系统存在证书验证问题,可更新根证书包:
    apt update && apt install ca-certificates
    update-ca-certificates
    

内容的提问来源于stack exchange,提问作者Simone Tone Ceschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:25:19