PHP Curl实时服务器不工作

3
我在本地主机上测试了脚本,它完美运行。但是我在实际服务器上尝试时,它却无法正常工作。
<?php
   $uploadfile=dirname(__FILE__)."/xml_request/cat.xml"; 
   $ch = curl_init("http://remote.xxxxxxxxxx.com.au:8090/Options.API");   
   curl_setopt($ch, CURLOPT_POSTFIELDS,
               array('Request'=>"@$uploadfile",
                     'clientKey'=>'xxxxxxxxxxxxxxxxxxx'));
   curl_setopt($ch, CURLOPT_PORT, '8090');
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $postResult = curl_exec($ch);

   $response = curl_getinfo($ch);
   echo "<pre>";
   print_r($response);
   echo "</pre>";

   curl_close($ch);
   echo "<pre>";
   print_r($postResult);
   //file_put_contents(dirname(__FILE__).'/xml_record/live.xml', $postResult);

?>

本地主机 我使用print_r打印curl_getinfo($ch)。

Array
(
    [url] => http://remote.xxxxxxxx.com.au:8090/Options.API
    [content_type] => text/html; charset=utf-8
    [http_code] => 200
    [header_size] => 246
    [request_size] => 215
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 2.278
    [namelookup_time] => 0
    [connect_time] => 0.344
    [pretransfer_time] => 0.344
    [download_content_length] => 9376
    [upload_content_length] => 759
    [starttransfer_time] => 0.734
    [redirect_time] => 0
    [certinfo] => Array
        (
        )

    [redirect_url] => 
)

实时测试 我打印出curl_getinfo($ch)的结果。

 Array
    (
        [url] => http://remote.xxxxxxxxxxx.com.au:8090/Options.API
        [content_type] => 
        [http_code] => 0
        [header_size] => 0
        [request_size] => 0
        [filetime] => -1
        [ssl_verify_result] => 0
        [redirect_count] => 0
        [total_time] => 0.012024
        [namelookup_time] => 0.011809
        [connect_time] => 0
        [pretransfer_time] => 0
        [download_content_length] => -1
        [upload_content_length] => -1
        [starttransfer_time] => 0
        [redirect_time] => 0
    )

不确定url的端口是否有问题。我试着搜索解决问题,但没有运气。


你的服务器上是否有防火墙阻止端口8090的出站流量? - Bad Wolf
我不确定如何检查以及在哪里检查。 - Jows
有没有什么方法可以解除端口屏蔽或其他的操作? - Jows
感谢回复。我联系了托管的支持部门,要求解封8090端口。感谢你给我提示。 - Jows
1个回答

3

来自评论:

你的网络主机可能会阻止端口8090上的出站流量。许多网络主机为增加安全性而阻止不常用的端口。唯一解决此问题的方法是联系你的网络主机并要求他们解除对该端口的封锁,以便你可以连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接