file_get_contents(urlencode($url))
以及cURL
在托管网站上不起作用。但是,两者都可以在本地主机上正常工作。
在服务器上,我收到以下消息
cURL错误:无法连接到xx.xxx.xx.x端口5000:连接被拒绝
在url中,我还传递了参数。我的$url
如下
http://xx.xxx.xx.x:5000/request_data?device=' . $dev_id
尝试过file_get_contents($url)
,file_get_contents(urlencode($url))
和cURL
$url = 'http://xx.xxx.xx.x:5000/request_data?device='.$dev_id ;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$curVal = curl_exec($curl);
if ($curVal === FALSE) {
echo "cURL Error: " . curl_error($curl);
}
echo $curVal;
curl_close($curl);
or
$url = 'http://xx.xxx.xx.x:5000/request_data?device=' . $dev_id ;
$curVal = file_get_contents(urlencode($url));
在本地主机上它可以正常工作,并返回如下
{“ Bool5”:0,“ Bool4”:0,“ Bool7”:0,“ TotalQtyReg”:0,“ Bool1”:0,“ Bool3”:0,“ Bool2”:0,“ DId”: “ device0219”,“ TimeStamp”:“ 2019-06-03 08:37:54”,“ Bool8”:0,“ Status”:“成功”,“ CRCMatched”:1,“ Bool6”:0,“ TotalQtyBool” :8}
谢谢,但是我是新手,所以请您告诉我如何在Web服务器上的命令行上运行curl-v
我在cpanel上找不到任何选项
我还尝试创建custom php.ini
并设置allow_url_fopen = ON
但仍然没有成功。
感谢@ÁlvaroGonzález,但是我有一个疑问,如果防火墙是罪魁祸首,那么我认为它也不应从Java脚本运行。但是,如果从Java脚本提出相同的请求,则工作正常。在Java脚本中,我使用了xmlHTTPRequest。
是@ÁlvaroGonzález,如果我尝试从浏览器(java脚本xmlHTTPRequest)提出请求,它的工作正常。我没有使用节点。那你建议我使用节点吗?
今天,我还从cpanel中检查IP阻止程序条目,但是没有ip被阻止。 :( :(:(
我尝试过的另一件事:我在php脚本中放了几行
header("Access-Control-Allow-Headers: Authorization, Content-Type");
header("Access-Control-Allow-Origin: *");
header('content-type: application/json; charset=utf-8');
然后我得到如下信息
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Length: 447
Content-Type: application/json; charset=utf-8
Date: Wed, 03 Jul 2019 10:13:20 GMT
Server: LiteSpeed
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Connection: keep-alive
Host: <myhost>.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
请问这为解决方案提供了任何线索吗?
好吧,我想必须在服务器端进行一些配置或设置。
感谢@Dom,我不确定它是Apache还是Nginx。这是一个Google驱动器,操作系统是Ubuntu,来自硬件设备的数据存储在该驱动器上。为此,他们使用了烧瓶Python。并由第三方处理。 问题仍然存在,并试图说服打开端口80/8080而不是打开5000。
答案 0 :(得分:0)
我不确定您是在服务器上运行Nginx还是Apache,但是如果是的话,从http切换到https应该可以解决连接被拒绝的错误,这对我来说是多次的,这是链接到指南,该指南将告诉您确切的操作: