curl - 我的 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 请求有两个不同的答案?
谢谢你的帮助。
解决方案
一个 URL 可以从一台服务器访问而另一台服务器不能访问的原因可能有很多
- 服务器防火墙的不同规则
- 客户端上的不同网络配置(DNS、路由)
- 客户端可能会使用一些代理
- 一个客户端的网络很慢
尝试缩小问题的范围。我将从:
ping server_ip
来自两个客户的电话ping server_name
来自两个客户的电话
并查看在两个客户端上执行的上述命令之间是否存在差异。
推荐阅读
- java - Java:动态类型约束
- c# - 带有自定义 .nuspec 元数据的 nuget pack .csproj
- java - QueryDsl 避免多个 if 块
- mysql - 获取与供应商的外键值相同的最后插入(最新添加)的合同 ID
- heroku - Specified query type "Query" not found in document when deploying to heroku
- python - Function python for odoo 10
- javascript - 制作适用于多种分辨率的 2 列布局的最佳方法是什么?
- c# - WinAPI 中的 SafeHandle 与 IntPtr 和 C# 中的 CloseHandle
- c# - 如何在一个平台上更改布局而不影响另一个平台
- javascript - 从嵌套结构中删除项目