首页 > 解决方案 > 我的 cURL 请求正在从服务器运行,但不是从另一个服务器运行

问题描述

我遇到了来自提供商的 cURL 请求问题。我们尝试做会话短信,我们得到了一个 Webhook 页面,当客户回复短信时,该页面可以获取信息。

提供商向我们的服务器发送的请求不会触发我们的 webhook 页面(连接超时)。

但是,当我尝试从另一台外部服务器发出完全相同的请求时,它运行良好。

这是请求:

curl -v -m 10 -X POST "mywebhookURL" -d '{"snapshotId":1354567,"accountId":"560a643cf2817caf0ed9","campaignId":"5e5780004e57014a4bb2a","contact":{"id":"5d28884406b97c176f8fc","identifier":"","countryCode":33},"replyMessage": "30000","event": "reply","eventDate": 1473429780000}'

我的提供者得到了这个答案:

Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying IP Address...
*   Connection timed out after 10001 milliseconds
*   Closing connection 0
curl: (28) Connection timed out after 10001 milliseconds

从另一台服务器:

Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying IP Address...
*   TCP_NODELAY set
*   Connected to Server URL (IP Address) port 443 (#0)

为什么我应该对从两个不同服务器到同一个服务器 URL 的完全相同的 cURL 请求有两个不同的答案?

谢谢你的帮助。

标签: curlserverconnection-timeout

解决方案


一个 URL 可以从一台服务器访问而另一台服务器不能访问的原因可能有很多

  1. 服务器防火墙的不同规则
  2. 客户端上的不同网络配置(DNS、路由)
  3. 客户端可能会使用一些代理
  4. 一个客户端的网络很慢

尝试缩小问题的范围。我将从:

  1. ping server_ip来自两个客户的电话
  2. ping server_name来自两个客户的电话

并查看在两个客户端上执行的上述命令之间是否存在差异。


推荐阅读