PHP でカールを使用してヘッダー パラメーターを設定する方法

藏色散人
リリース: 2023-03-03 12:26:01
オリジナル
27777 人が閲覧しました

php ヘッダーを設定するカール メソッド: 最初にブラウザを初期化し、次にブラウザを設定し、パラメータ URL をブラウザ設定に渡し、それを文字列の形式でブラウザに返し、データ データがあります。最後に、「curl_setopt」メソッドを通じてヘッダーを設定します。

PHP でカールを使用してヘッダー パラメーターを設定する方法

推奨: 「PHP チュートリアル

PHP は CURL を使用してヘッダー ヘッダー パラメーターを設定し、Content-Type を設定します。アプリケーション/json 型のバックグラウンド データ受信

CURL 関数

public function CurlRequest($url,$data=null,$header=null){   //初始化浏览器   $ch = curl_init();   //设置浏览器,把参数url传到浏览器的设置当中   curl_setopt($ch, CURLOPT_URL, $url);   //以字符串形式返回到浏览器当中   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   //禁止https协议验证域名,0就是禁止验证域名且兼容php5.6   curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);   //禁止https协议验证ssl安全认证证书   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);   //判断data是否有数据,如果有data数据传入那么就把curl的请求方式设置为POST请求方式   if ( !empty($data) ) {     //设置POST请求方式     @curl_setopt($ch, CURLOPT_POST, true);     //设置POST的数据包     @curl_setopt($ch, CURLOPT_POSTFIELDS, $data);   }   //设置header头   if ( !empty($header) ) {     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);   }   //让curl发起请求   $str = curl_exec($ch);   //关闭curl浏览器   curl_close($ch);   //把请求回来的数据返回   return $str; }
ログイン後にコピー

関数呼び出し

$url = "http://desk.yunindex.cn/test"; $jsonArr = [   'accountid' => '34',   'option' => 'chat_index', ]; $jsonStr = json_encode($jsonArr);  //设置了Content-Type: application/json,传参要转化为JSON,否则后台接收不到数据 //header头设置 $headers = array(   "Content-Type: application/json",   "Content-Length: " . strlen($jsonStr) . "",   "Accept: application/json",   "client-id:5K8264ILTKCH16CQ2502SI8ZNMTM67VS",    //自定义参数   "client-secret:C380BEC2BFD727A4B6845133519F3AD6"  //自定义参数 ); $data = $this->CurlRequest($url,$jsonStr,$headers);
ログイン後にコピー

バックグラウンド受け入れ

json_encode($_SERVER)  
ログイン後にコピー

$_SERVER を使用してヘッダー情報を受信します。ヘッダーに設定されたカスタム パラメーターがここに反映されます

Result

{ "USER": "www", "HOME": "\/home\/www", "HTTP_CLIENT_SECRET": "C380BEC2BFD727A4B6845133519F3AD6",       //这是自定义的参数,跟上面传的参数相对于,会自动转化为大写跟下划线 "HTTP_CLIENT_ID": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",          //这是自定义的参数,跟上面传的参数相对于,会自动转化为大写跟下划线 "HTTP_ACCEPT": "application\/json",   "HTTP_CONTENT_LENGTH": "40", "HTTP_CONTENT_TYPE": "application\/json", "HTTP_HOST": "desk.yunindex.cn", "SCRIPT_FILENAME": "\/workspace\/php\/index_desk\/htdocs\/index.php", "REDIRECT_STATUS": "200", "SERVER_NAME": "desk.yunindex.cn", "SERVER_PORT": "80", "SERVER_ADDR": "192.168.1.90", "REMOTE_PORT": "64524", "REMOTE_ADDR": "192.168.1.113", "SERVER_SOFTWARE": "nginx\/1.15.2", "GATEWAY_INTERFACE": "CGI\/1.1", "REQUEST_SCHEME": "http", "SERVER_PROTOCOL": "HTTP\/1.1", "DOCUMENT_ROOT": "\/workspace\/php\/index_desk\/htdocs", "DOCUMENT_URI": "\/index.php", "REQUEST_URI": "\/test", "SCRIPT_NAME": "\/index.php", "CONTENT_LENGTH": "40", "CONTENT_TYPE": "application\/json", "REQUEST_METHOD": "POST", "QUERY_STRING": "", "FCGI_ROLE": "RESPONDER", "PHP_SELF": "\/index.php", "REQUEST_TIME_FLOAT": 1557025085.410574, "REQUEST_TIME": 1557025085 }
ログイン後にコピー

ここに問題があります。nginx を使用している場合、ヘッダー内のパラメーターに下線が付いている場合 (client_secret など) )、$_SERVERを使用するとパラメータが受け取れないようです。nginx.confを設定してunderscores_in_headersを追加する必要があります; パラメータを受け取るように

file_get_contents('php://input')
ログイン後にコピー

を設定し、ストリーム形式で受け取る必要があります

結果

string(40) "{"accountid":"34","option":"chat_index"}"
ログイン後にコピー

以上がPHP でカールを使用してヘッダー パラメーターを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!