Anything wrong with my cURL code (http status of 0)?

前端 未结 5 935
半阙折子戏
半阙折子戏 2020-12-30 12:11

Consistently getting a status of 0 even though if I copy and paste the url sent into my browser, I get a json object right back



        
相关标签:
5条回答
  • 2020-12-30 12:36

    so try this you will get positive results i have added CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST to false

    <?php
    
    
    $mainUrl = "https://api.xxxx.com/?";
    $co = "xxxxx";
    $pa = "xxxx";
    $par = "xxxx";
    $part= "xxxx";
    $partn = "xxxx";
    $us= "xxx";
    $fields_string;
    $fields = array(
                'co'=>urlencode($co),
                'pa'=>urlencode($pa),
                'par'=>urlencode($par),
                'part'=>urlencode($part),
                'partn'=>urlencode($partn),
                'us'=>urlencode($us)
                );
    
    foreach($fields as $key=>$value) { $fields_string .= $key . '=' . $value . '&' ;}
    
    $fields_string = rtrim($fields_string, "&");
    $fields_string = "?" . $fields_string;
    
    $url = "https://api.xxxxx.com/" . $fields_string;
    
    $request =  $url; 
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT,'3');
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
    $content = trim(curl_exec($ch));
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    curl_close($ch);
    print $url;
    print $http_status;
    print $content; 
    
    
    
    ?>
    
    0 讨论(0)
  • 2020-12-30 12:39

    FYI, you can also get a status code of 0 if the curl connection times out before the remote server returns data. In that case you need to set curl time out options to avoid that situation. Just posting this for anyone else having status 0 problems.

    0 讨论(0)
  • 2020-12-30 12:54

    I had the same problem, You MUST run the curl_exec($ch) command before you run the curl_getinfo($ch) command.

    0 讨论(0)
  • 2020-12-30 12:55

    Realized that I was having SSL issues. Simply set CURLOPT_SSL_VERIFYPEER and CURLOPT_SSL_VERIFYHOST to false. Works.

    0 讨论(0)
  • 2020-12-30 13:00

    You should always set the option CURLOPT_VERBOSE when you are debugging for curl. Your timeout value looks very low.

    0 讨论(0)
提交回复
热议问题