簡體   English   中英

PHP的:使卷曲請求

[英]PHP :Making a curl request

我在這里有問題

<?php 
        include('smsconfig.php');
        include("SMTPconfig.php");
        include("dbconnect.php");

        define("SITE_URL", "http://gf2fyu.blah.com");
        $GLOBAL_REST_URL = "gf2fyu.domain.com/organization/";

        $headers = array(
                        'X-MYDOMAIN-Secret:VuFlRQv40SUp0y1AXflMD0hWw8ZiiTu08f9ZXc0AYFc=',
                        'Content-Type: application/json; charset=UTF-8',
                        'Accept: application/json; charset=UTF-8',
        );
        //$json = array2json($ages);
        $curl_handle=curl_init();
        curl_setopt($curl_handle,CURLOPT_URL,$GLOBAL_REST_URL);
        curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
    //    curl_setopt($curl_handle, CURLOPT_POSTFIELDS,$json);
        curl_setopt($curl_handle, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
        $buffer = curl_exec($curl_handle);
        curl_close($curl_handle);
        $getit =  json_decode($buffer, true);
        $smskey =  substr(number_format(time() * rand(),0,'',''),0,5);
        print_r($getit);
?>

如果我在本地服務器和Mozila REST上運行上述代碼,對我來說工作正常

客戶端,但是每當我嘗試將此代碼發布到生產版本時

此代碼不會影響其余服務器。

請告訴我這里是什么問題?

我在MOzila中使用相同的標頭,但工作正常

我正在運行Nginx

一切都在注釋中,但讓我們按順序放下。

1)Curl可能未安裝在服務器上的PHP中。 要找出原因,請打開錯誤報告(或檢查錯誤日志)。 或者,一種更可靠的方法是檢查功能。 將以下內容添加到您的代碼中(在包含之后)

if (!function_exists('curl_init')) {
     die('Curl not installed');
}

解決方案:您可以嘗試使用file_get_contents,但正如注釋中所述,通常不建議這樣做,因為它也被禁用。 如果需要傳遞標題,則可以在“上下文”(調用中的第三個參數-查看手冊)中進行。 更好的選擇是安裝curl(或獲得支持以安裝它)。

2)可能啟用了防火牆。 您可以通過檢查curl_getinfo ()並將結果轉儲到屏幕(以進行測試)來建立。 這將告訴您它是否被阻止或通過。 有關更多信息,請參見手冊(上面鏈接)。

3)您的代碼中可能存在較高的錯誤,導致出現問題。 檢查錯誤日志,或使用以下命令打開error_reporting

error_reporting(E_ALL);
ini_set('display_errors', 'on');

不過,請記住在最終投入生產時刪除這些行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM