首页 > 解决方案 > 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?

标签: phpcurl

解决方案


它几乎可以肯定是一个 IP 块(或范围块或区域块?),您可以尝试对其进行跟踪,它可能会显示您被阻止的位置,但是您是否尝试过从另一个 IP 获得?作为记录,我尝试从挪威、法国、加拿大和荷兰连接,我可以从所有这些位置连接,所以……很可能是一个 ip/range 块。


推荐阅读