php - cURL 在本地工作;服务器上的连接被拒绝
问题描述
我正在尝试使用PHP从以下 URL 获取响应cUrl
-file_get_content()
https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg?user=<USERNAME>&pass=<PASSWORD>&msisdn=<MSISDN>&trxid=<TRANSACTION_ID>
为简单起见-
https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg
对于有效请求,它会使用交易的详细信息响应 XML,但对于第二个 url 或任何参数不正确的请求,它会从浏览器或邮递员响应如下内容-
<transactions>
<transaction>
<trxStatus>1002</trxStatus>
<trxId>6E72D8VS02</trxId>
<reference/>
</transaction>
</transactions>
我编写了一个 php 代码来获得这样的响应-
$endPoint = "https://www.bkashcluster.com:9081/dreamwave/merchant/trxcheck/sendmsg?user=xxxx&pass=xxxx&msisdn=xxxx&trxid=xxxx";
$xmlString = file_get_contents($endPoint, FILE_TEXT);
还尝试使用 cURL as-
$curl = curl_init($endPoint);
curl_setopt($curl, CURLOPT_PORT, 9081); // Tried with or without
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$xml_string = curl_exec($curl);
问题:在这两种情况下,我都能从 localhost 得到完美的响应,但是当我从 Web 服务器连接执行时,连接被拒绝。
错误显示类似这样的内容-
文件获取内容()
无法打开流:连接被拒绝
curl_error()
无法连接到主机
值得一提的是,这两个函数都在服务器中为任何其他 URL 工作,例如https://google.com
我在 stackoverflow 中发现了这个几乎相似的问题,但不幸的是它没有任何答案。
主机站点有任何限制吗?或者我错过了什么或需要做任何额外的事情?或者它不适用于不同的端口而不是80?
解决方案
它几乎可以肯定是一个 IP 块(或范围块或区域块?),您可以尝试对其进行跟踪,它可能会显示您被阻止的位置,但是您是否尝试过从另一个 IP 获得?作为记录,我尝试从挪威、法国、加拿大和荷兰连接,我可以从所有这些位置连接,所以……很可能是一个 ip/range 块。
推荐阅读
- c++ - 如何从具有多种类型的单行文件中仅读取一种类型?
- common-lisp - 在这个 Common Lisp 示例中,socket-close 的目的是什么?
- terminal - Linux终端快捷方式
- python - 如何使用相同的anaconda管理不同的模块版本?
- python - 如何将事件连接到 matplotlib.collections.PatchCollection
- windows - 在批处理文件脚本中查找通配符列表的最新文件
- django - 使用 mysite.urls 中定义的 URLconf 时出错(Django 教程)
- javascript - 输入值更改时更改 html 属性
- curl - Youtube Data API 中的“您的访问令牌”是什么以及如何获取它?
- java - JavaFX 项目未显示