Home Backend Development PHP Problem How to use curl to set header parameters in PHP

How to use curl to set header parameters in PHP

Jul 28, 2020 am 11:03 AM
curl header php

php curl method to set header: first initialize the browser; then set up the browser, and pass the parameter url to the browser settings; then return it to the browser in the form of a string, and determine whether the data There is data; finally, set the header through the "curl_setopt" method.

How to use curl to set header parameters in PHP

Recommended: "PHP Tutorial"

PHP uses CURL to set header header parameters and set Content-Type: Background data reception of application/json type

CURL function

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;
}
Copy after login

Function call

$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);
Copy after login

Background acceptance

json_encode($_SERVER)  
Copy after login

Use $_SERVER to receive the header Information, the custom parameters set in the header will be reflected here

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
}
Copy after login

There is a problem here. If you are using nginx, if the parameters in the header are underlined (such as: client_secret), it seems that the parameter cannot be received when using $_SERVER. You need to configure nginx.conf and add underscores_in_headers on; configure

file_get_contents('php://input')
Copy after login

to receive parameters and receive them in the form of a stream

result

string(40) "{"accountid":"34","option":"chat_index"}"
Copy after login

The above is the detailed content of How to use curl to set header parameters in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Working with Database CakePHP Working with Database Sep 10, 2024 pm 05:25 PM

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

CakePHP Logging CakePHP Logging Sep 10, 2024 pm 05:26 PM

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

See all articles