PHP curl传 json字符串

合集下载

curl 使用指导

curl 使用指导

curl 使用指导cURL是一个强大的命令行工具,用于通过URL传输数据,支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、LDAPS、FILE等。

以下是cURL的基本使用指导:1、查看网页源码:1)使用curl获取并显示网页源码到终端:bashcurl URL网址2)将网页源码保存到文件中:bashcurl -o output.html URL网址2、自动跟随重定向:1)当目标网址发生重定向时,使用-L或--location参数让cURL跟随重定向:bashcurl -L URL网址3、POST请求:1)发送POST请求可以配合-d(或--data)参数来发送数据:bashcurl -X POST -d "key1=value1&key2=value2" API地址/data2)如果需要发送JSON格式的数据,可以使用`-H`设置Content-Type头,并使用`-d`或`--data`传递JSON字符串:bashcurl -X POST -H "Content-Type: application/json" -d '{"key1": "value1","key2": "value2"}' URL地址/data4、上传文件:1)上传文件可以通过-F(或--form)进行表单提交:bashcurl -X POST -F 'file=@localfile.txt;type=text/plain' URL地址/upload5、自定义HTTP头部:1)添加HTTP头部信息:bashcurl -H "Authorization: Bearer your_token" URL地址/protected-resource6、保存响应头和内容:1)分别保存HTTP响应头部和内容到不同文件:bashcurl -i URL地址-o response_body.txt -D headers.txt7、使用cookie:1)存储和发送cookie:bash//存储cookies到文件curl -c cookies.txt URL地址/login//从文件读取cookies发起请求curl -b cookies.txt URL地址/protected-page8、下载文件并保留原始文件名:1)使用-J(或--remote-header-name)接收远程服务器返回的文件名:bashcurl -OJ URL地址/downloads/somefile.zip9、代理设置:1)通过HTTP代理访问网络资源:bashcurl -x URL地址1:8080 URL地址2以上只是cURL功能的一部分,实际应用中还有更多高级选项可以满足各种复杂场景的需求。

php curl的返回值格式

php curl的返回值格式

php curl的返回值格式phpcurl是一个在PHP中用于发送HTTP请求的库。

它提供了各种功能,包括发送GET和POST请求,处理Cookie,设置请求头等。

phpcurl的返回值格式也是非常重要的,它决定了我们如何解析和处理API返回的数据。

在phpcurl中,API的返回值通常是一个包含各种信息的字符串。

这个字符串的格式可以是XML、JSON或者纯文本。

我们需要根据具体的API文档来确定返回值的格式。

在解析返回值之前,我们首先需要确保我们已经成功地发送了HTTP请求并获得了响应。

一种常见的做法是通过判断返回值是否为空来判断是否成功,如果返回值为空,则表示请求失败。

接下来,我们可以通过phpcurl提供的函数或者自定义的方式来解析返回值。

如果返回值是XML格式的,我们可以使用PHP的内置函数来解析。

如果返回值是JSON格式的,可以使用json_decode函数将其转换为PHP对象或数组。

如果返回值是纯文本格式的,我们可以使用字符串处理函数来提取所需的信息。

在解析返回值之后,我们可以根据返回值中的数据来进行相应的处理。

我们可以通过判断返回值中的某些字段或标记来确定请求是否成功。

如果成功,我们可以继续解析返回值中的其他信息,并进行相应的业务逻辑处理。

如果失败,我们可以根据返回值中的错误信息进行错误处理或者进行重试操作。

总结一下,phpcurl的返回值格式对于我们正确解析和处理API返回的数据非常重要。

在使用phpcurl发送HTTP请求之后,我们需要根据具体的API文档来确定返回值的格式,并采取相应的解析方式。

通过解析返回值,我们可以获取到API返回的数据,并进行相应的处理。

这样,我们就可以更好地利用phpcurl来实现各种功能,满足我们的需求。

php curl 用法

php curl 用法

PHP Curl 用法详解PHP 是一种广泛使用的服务器端脚本语言,用于开发动态网页和应用程序。

它提供了许多内置函数和扩展,其中一个非常有用的扩展是Curl。

Curl 是一个用于通过各种协议(如HTTP、FTP、SMTP 等)进行网络通信的库。

在本文中,我们将详细介绍PHP Curl 的用法,以帮助您更好地理解和使用它。

首先,您需要确保您的PHP 环境已经安装了Curl 扩展。

您可以通过检查php.ini 文件中的`extension=curl` 来确认是否已经安装。

如果没有找到该行,您需要手动添加它并重新启动您的Web 服务器。

一旦您确保Curl 扩展已经安装,您就可以开始使用Curl 进行网络通信了。

下面是一个简单的Curl GET 请求的示例:```php```在上述示例中,我们首先使用`curl_init()` 初始化了一个Curl 对象。

然后,我们使用`curl_setopt()` 函数设置了请求的URL。

接下来,我们使用`curl_exec()` 执行了请求,并将响应保存在`$response` 变量中。

最后,我们使用`curl_close()` 关闭了Curl 对象,并使用`echo` 输出了响应。

除了GET 请求,Curl 还支持POST 请求。

下面是一个Curl POST 请求的示例:```php```在上述示例中,我们使用`curl_setopt()` 函数设置了请求方式为POST,并使用`curl_setopt()` 函数设置了POST 数据。

POST 数据以字符串的形式传递,可以根据具体的需求进行编码。

除了设置请求的URL 和请求方式,Curl 还支持许多其他选项,如设置请求头、设置超时时间、设置代理等。

您可以通过查阅PHP 官方文档或其他教程来了解更多关于Curl 的选项和用法。

总结一下,PHP Curl 是一个非常强大和实用的工具,用于进行网络通信。

通过使用Curl,您可以轻松地发送HTTP 请求、获取响应并处理返回的数据。

php中的curl使用入门教程和常见用法实例(转载)

php中的curl使用入门教程和常见用法实例(转载)

php中的curl使⽤⼊门教程和常见⽤法实例(转载)摘要: [⽬录] php中的curl使⽤⼊门教程和常见⽤法实例⼀、curl的优势⼆、curl的简单使⽤步骤三、错误处理四、获取curl请求的具体信息五、使⽤curl发送post请求六、⽂件上传七、⽂件下载⼋、http 验证九、通过代理发送请求⼗、发送json数据⼗⼀、cURL批处理(...[⽬录]php中的curl使⽤⼊门教程和常见⽤法实例⼀、curl的优势⼆、curl的简单使⽤步骤三、错误处理四、获取curl请求的具体信息五、使⽤curl发送post请求六、⽂件上传七、⽂件下载⼋、http 验证九、通过代理发送请求⼗、发送json数据⼗⼀、cURL批处理(multi cURL)⼗⼆、总结起先cURL是做为⼀种命令⾏⼯具设计出来的,⽐较幸运的是,php也⽀持cURL了。

通过cURL这个利器,我们能在php程序中⾃由地发送HTTP请求到某个url来获取或者提交数据,并且⽀持其它多种协议,⽐如FTP,Telnet以及SMTP等。

在这篇博⽂中,我将简述下,在php中具体怎么使⽤cURL来处理⼀些事情。

⼀、curl的优势你也许会说,在php中可以很容易的获取某个url的内容,只要通过file_get_contents,file或者readfile函数就能轻松实现,根本不必使⽤cURL:$content = file_get_contents("");$lines = file("");readfile("");没错,以上函数在某些情况下使⽤起来确实很⽅便,但是我感觉这⼏个函数不够灵活,也没法进⾏错误处理。

⽽且,如果遇到要在php程序中向某个服务器提交表单数据,上传⽂件,处理cookies或者认证等任务时,以上三个函数根本⽆法胜任。

这个时候,cURL就体现它的价值了。

cURl不但⽀持很多的⽹络协议,⽽且提供了关于url请求的具体信息,很强⼤!⼆、curl的简单使⽤步骤要使⽤cURL来发送url请求,具体步骤⼤体分为以下四步:1.初始化2.设置请求选项3.执⾏⼀个cURL会话并且获取相关回复4.释放cURL句柄,关闭⼀个cURL会话// 1. 初始化⼀个cURL会话$ch = curl_init();// 2. 设置请求选项, 包括具体的urlcurl_setopt($ch, CURLOPT_URL, "");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);// 3. 执⾏⼀个cURL会话并且获取相关回复$response = curl_exec($ch);// 4. 释放cURL句柄,关闭⼀个cURL会话curl_close($ch);三、错误处理在上述代码中,你也可以增加错误处理的代码:$response = curl_exec($ch);if ($response === FALSE) {echo "cURL 具体出错信息: " . curl_error($ch);}注意了,在做上述判断时务必要使⽤===,因为请求的回复可能是空字符串,curl在请求出错的情况下回返回FALSE值,所以我们必须使⽤===,⽽不是==。

phpcurl参数详解

phpcurl参数详解

phpcurl参数详解curl_close — 关闭⼀个cURL会话curl_copy_handle — 复制⼀个cURL句柄和它的所有选项curl_errno — 返回最后⼀次的错误号curl_error — 返回⼀个保护当前会话最近⼀次错误的字符串curl_escape — 使⽤ URL 编码给定的字符串curl_exec — 执⾏⼀个cURL会话curl_file_create — 创建⼀个 CURLFile 对象curl_getinfo — 获取⼀个cURL连接资源句柄的信息curl_init — 初始化⼀个cURL会话curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄curl_multi_close — 关闭⼀组cURL句柄curl_multi_exec — 运⾏当前 cURL 句柄的⼦连接curl_multi_getcontent — 如果设置了CURLOPT_RETURNTRANSFER,则返回获取的输出的⽂本流curl_multi_info_read — 获取当前解析的cURL的相关传输信息curl_multi_init — 返回⼀个新cURL批处理句柄curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源curl_multi_select — 等待所有cURL批处理中的活动连接curl_multi_setopt — 为 cURL 并⾏处理设置⼀个选项curl_multi_strerror — Return string describing error codecurl_pause — Pause and unpause a connectioncurl_reset — Reset all options of a libcurl session handlecurl_setopt_array — 为cURL传输会话批量设置选项curl_setopt — 设置⼀个cURL传输选项curl_share_close — Close a cURL share handlecurl_share_init — Initialize a cURL share handlecurl_share_setopt — Set an option for a cURL share handle.curl_strerror — Return string describing the given error codecurl_unescape — 解码给定的 URL 编码的字符串curl_version — 获取cURL版本信息在实际的使⽤当中,使⽤得最多的函数是curl_setopt — 设置⼀个cURL传输选项说明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄option 表⽰的是需要设置的CURLOPT_XXX选项value 表⽰的是将设置在option选项上的值对于下⾯的这些option的可选参数,value应该被设置⼀个bool类型的值:CURLOPT_AUTOREFERER 当根据Location:重定向时,⾃动设置header中的Referer:信息。

curl 发送post请求写法

curl 发送post请求写法

文章标题:深度解析——curl 发送post请求写法一、引言在网络传输中,常常需要使用curl发送post请求,以实现数据的传输和交互。

本文将从curl发送post请求的基本写法开始,深入探讨其原理和使用技巧,帮助读者全面了解和灵活运用该功能。

二、curl发送post请求的基本写法1. 使用-curl命令发送post请求在命令行中使用curl命令发送post请求的基本写法如下:```curl -X POST -d '参数1=值1&参数2=值2' URL```其中,-X POST表示使用post请求,-d表示传递数据,参数1和参数2表示需要传递的参数,值1和值2表示参数对应的值,URL表示请求的目标位置区域。

2. 使用curl发送JSON格式的post请求如果需要发送JSON格式的post请求,可以使用如下写法:curl -X POST -H "Content-Type: application/json" -d '{"key1": "value1", "key2": "value2"}' URL```其中,-H "Content-Type: application/json"表示请求的内容类型为JSON格式,-d后面的内容为JSON格式的数据。

以上是curl发送post请求的基本写法,下面将深入探讨其原理和使用技巧。

三、curl发送post请求的原理1. 数据传输原理curl发送post请求的核心原理是将数据通过HTTP协议传输到指定的URL位置区域。

在发送post请求时,curl会将参数和数值以一定格式封装在数据包中,并通过TCP/IP协议传输到目标服务器。

2. 参数传递原理参数传递是curl发送post请求的重要环节。

在使用-d参数传递数据时,curl会将参数和数值以key-value形式拼接成字符串,以&符号分隔不同的参数,然后传递给目标位置区域。

curl post 示例

curl post 示例

curl post 示例1. Curl 简介:Curl 是一个命令行工具和库,用于传输数据,支持多种协议,如HTTP、HTTPS、FTP等。

它以简单、灵活、强大而著称。

以下是一个使用Curl 进行POST请求的简单示例。

2. Curl POST 请求基本格式:Curl 使用-X 参数指定请求方法,使用-d 参数指定POST请求的数据体,使用-H 参数添加请求头。

curl -X POST -d"key1=value1&key2=value2"-H"Content-Type: appli cation/x-www-form-urlencoded"examplecom/api上述示例中,-X POST 表示使用POST请求方法,-d 后面跟着的是POST 请求的数据体,-H 后面是请求头,最后是请求的URL。

3. Curl POST JSON 数据:如果要发送JSON格式的数据,可以使用-d 参数,并在数据体前加上@符号,后面接JSON文件或者直接写JSON字符串。

curl -X POST -d'{"key1": "value1", "key2": "value2"}'-H"Content-T ype: application/json"examplecom/api4. Curl POST 文件上传:有时候需要上传文件,可以使用-F 参数,后面跟着键值对形式的文件表单项。

curl -X POST -F"file=@/path/to/file.txt"examplecom/upload5. Curl POST 表单数据:如果是表单数据,可以使用-F 参数,并列出所有的键值对。

curl -X POST -F"key1=value1"-F"key2=value2"examplecom/submit -form6. Curl POST 多个文件上传:要上传多个文件,可以使用多个-F 参数。

php curl post 参数

php curl post 参数

文章标题:深度解析PHP Curl POST参数一、引言PHP是一种非常流行的后端编程语言,而Curl则是一种常用的用于向服务器发送请求的工具。

在实际开发中,我们经常需要使用PHP Curl 来发送POST请求,而POST参数则是发送请求时必不可少的一部分。

本文将深度解析PHP Curl中的POST参数,探讨其使用方法和相关注意事项。

二、POST参数的基本概念在进行HTTP请求时,我们可以使用GET方法将参数附加在URL后面,也可以使用POST方法将参数发送给服务器。

相比GET方法,POST方法更适合发送大量参数或敏感信息,因此在实际应用中更加常见。

在PHP Curl中,我们可以使用curl_setopt函数设置CURLOPT_POSTFIELDS选项来设置POST参数,将所需的参数以字符串或数组的形式传递给服务器。

三、深入了解PHP Curl中的POST参数1. 设置POST参数的方法在使用PHP Curl发送POST请求时,我们需要使用curl_setopt函数设置CURLOPT_POSTFIELDS选项来设置POST参数。

我们可以将参数以字符串的形式传递,也可以将参数以数组的形式传递。

在设置参数时,需要注意参数的编码方式以及参数的格式要求。

2. POST参数的编码方式在发送POST请求时,我们需要对参数进行合适的编码。

通常情况下,我们可以使用网络协议_build_query函数将参数数组转换为URL编码的字符串,以符合POST请求的要求。

另外,对于特殊字符或中文字符,我们还需要进行适当的编码处理,以确保参数在传输过程中不会出现问题。

3. POST参数的格式要求在设置POST参数时,需要根据具体的接口要求来确定参数的格式。

有些接口需要将参数以JSON格式传输,而有些接口则需要以表单形式传输参数。

在设置POST参数时,需要根据接口文档来确定参数的具体格式要求,以确保参数能够被正常解析。

四、注意事项1. 参数的安全性在设置POST参数时,需要考虑参数的安全性。

PHP中CURL的CURLOPT_POSTFIELDS参数使用细节

PHP中CURL的CURLOPT_POSTFIELDS参数使用细节

PHP中CURL的CURLOPT_POSTFIELDS参数使用细节PHP中CURL库的CURLOPT_POSTFIELDS参数是用来设置HTTP请求的body数据的。

它可以接受多种形式的参数,包括字符串、数组和资源等。

在这篇文章中,我们将详细解释CURLOPT_POSTFIELDS参数的使用细节,并提供一些实际的例子。

CURLOPT_POSTFIELDS参数可以接受字符串类型的数据。

这意味着我们可以直接将以字符串形式表示的数据传递给这个参数。

示例如下:```$data = "name=John&age=25";curl_setopt($ch, CURLOPT_POSTFIELDS, $data);```这个例子中,我们将一个名为$data的字符串作为参数传给CURLOPT_POSTFIELDS。

字符串的格式可以是URL编码的表单数据,也可以是JSON格式的数据。

这取决于我们希望将什么样的数据发送到服务器。

在发送URL编码的表单数据时,我们需要确保每个字段都被正确编码,并且字段之间使用&符号分隔。

CURLOPT_POSTFIELDS参数还可以接受数组类型的数据。

这个数组可以包含多个键值对,每个键值对表示一个字段及其对应的值。

示例如下:```$data = array'name' => 'John','age' => 25curl_setopt($ch, CURLOPT_POSTFIELDS, $data);```在这个例子中,我们将一个名为$data的数组作为参数传递给CURLOPT_POSTFIELDS。

在发送请求时,CURL库会将这个数组自动转换为URL编码的表单数据。

需要注意的是,在处理数组类型的数据时,CURL库默认将每个字段的值转换为字符串类型。

如果一些字段的值是一个数组,CURL库会使用逗号将其各个元素拼接到一起。

curl 传入参数

curl 传入参数

curl 传入参数
标题:Curl传入参数的详细解析
引言:
Curl是一个强大的命令行工具,用于与各种不同的服务器进行通信。

在使用Curl时,传入参数是非常重要的,它们决定了Curl的行为和与服务器的交互方式。

本文将详细解析Curl传入参数的使用方法和相关注意事项。

正文:
一、URL参数
1.1 URL基本结构
1.2 URL编码
1.3 URL参数传递方式
二、请求方法
2.1 GET请求
2.2 POST请求
2.3 PUT请求
2.4 DELETE请求
2.5 HEAD请求
三、请求头部
3.1 常用请求头部
3.2 自定义请求头部
3.3 处理Cookie
四、请求体
4.1 表单数据
4.2 JSON数据
4.3 文件上传
4.4 自定义请求体
五、其他参数
5.1 代理设置
5.2 超时设置
5.3 SSL证书验证
5.4 响应输出设置
5.5 重定向设置
总结:
通过本文的阐述,我们详细了解了Curl传入参数的使用方法和相关注意事项。

我们了解了URL参数的基本结构和编码方式,以及不同的请求方法和请求头部的设置。

同时,我们也了解了请求体的不同类型和其他一些常用参数的设置。

掌握这些知识,能够更加灵活地使用Curl进行网络通信,并且能够根据实际需求进行参数的定制,提高开发效率。

注意:本文只是对Curl传入参数的基本使用进行了介绍,具体的使用方法和参数设置还需要根据具体情况进行进一步学习和实践。

php curl 请求方法

php curl 请求方法

php curl 请求方法在 PHP 中,你可以使用 cURL 库来发送 HTTP 请求。

cURL 是一个功能强大的库,支持多种请求方法,如 GET、POST、PUT、DELETE 等。

下面是一个使用 cURL 发送 GET 请求的示例:```php<?php// 初始化 cURL$ch = curl_init();// 设置 cURL 选项curl_setopt($ch, CURLOPT_URL, "curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);// 发送请求并获取响应$response = curl_exec($ch);// 检查是否有错误发生if(curl_errno($ch)){echo 'Curl error: ' . curl_error($ch);}// 关闭 cURL 资源curl_close($ch);// 处理响应数据echo $response;>```上述示例中,我们使用 `curl_init()` 函数初始化 cURL,然后使用`curl_setopt()` 函数设置请求的 URL 和其他选项。

在本例中,我们将`CURLOPT_RETURNTRANSFER` 设置为 `true`,以便将响应作为字符串返回而不是直接输出。

然后,使用 `curl_exec()` 函数发送请求并获取响应。

如果发生错误,我们使用 `curl_errno()` 和 `curl_error()` 函数获取错误信息。

最后,使用 `curl_close()` 函数关闭 cURL 资源。

你可以根据需要调整请求选项和参数,例如设置请求头、发送 POST 数据等。

cURL 提供了丰富的选项和功能,你可以查阅 PHP cURL 文档以获取更多详细信息和示例。

phpcurl传递数据

phpcurl传递数据

phpcurl传递数据<?phpheader("Content-type: text/html; charset=utf-8");/*** curl 传递数据*/class curl {private $curl_resource;private $url = '';private $input = array();private $curl_error = '';private $curl_info = '';public $response;public function __construct($url) {$this->url = $url;}public function get_info() {return array('url'=>$this->url,'input'=>$this->input,'curl_error'=>$this->curl_error,'curl_info'=>$this->curl_info); }private function connect() {$this->curl_resource = curl_init();curl_setopt($this->curl_resource, CURLOPT_HEADER, 0 ); // 过滤HTTP头curl_setopt($this->curl_resource,CURLOPT_RETURNTRANSFER, 1);// 显⽰输出结果curl_setopt($this->curl_resource, CURLOPT_TIMEOUT, 30); // 设置超时限制防⽌死循环}public function post($input) {$this->connect();$input = (array) $input;$this->input = $input;$input = http_build_query($input); //根据数组产⽣⼀个urlencode之后的请求字符串curl_setopt($this->curl_resource, CURLOPT_URL, $this->url);curl_setopt($this->curl_resource,CURLOPT_POST,true); // post传输数据curl_setopt($this->curl_resource,CURLOPT_POSTFIELDS,$input); // post传输数据$this->curl_error = curl_error($this->curl_resource);$this->curl_info = curl_getinfo($this->curl_resource);$this->response = curl_exec($this->curl_resource);curl_close($this->curl_resource);return $this->response;}public function get($input) {$this->connect();$input = (array) $input;$this->input = $input;$input = $this->url.'?'.http_build_query($input);curl_setopt($this->curl_resource, CURLOPT_URL, $input);$this->response = curl_exec($this->curl_resource);curl_close($this->curl_resource);return $this->response;}}$curl = new curl('/index.php');print_r($curl->post('post传递数据'));var_dump($curl->get_info());print_r($curl->get('get传递数据'));var_dump($curl->get_info());。

curl php代码

curl php代码

curl php代码以下是一个使用PHP的cURL库发送HTTP请求的示例代码:```php<?php// 创建一个cURL资源$ch = curl_init();// 设置cURL选项curl_setopt($ch, CURLOPT_URL, " // 设置请求的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将返回的结果作为字符串返回,而不是直接输出curl_setopt($ch, CURLOPT_POST, true); // 发送POST请求curl_setopt($ch, CURLOPT_POSTFIELDS, array("param1" => "value1", "param2" => "value2")); // 设置POST数据// 执行cURL会话并获取响应$response = curl_exec($ch);// 检查是否有错误发生if(curl_errno($ch)){echo 'Curl error: ' . curl_error($ch);}// 关闭cURL资源curl_close($ch);// 处理响应数据if ($response === false) {echo "请求失败";} else {echo "响应数据:";echo $response;}>```上述代码发送一个POST请求到"请注意,您需要将URL替换为您想要发送请求的实际URL,并根据需要设置其他cURL选项。

curl请求模拟post发送json

curl请求模拟post发送json

curl请求模拟post发送json 解释:curl -hUsage: curl [options...] <url>Options: (H) means HTTP/HTTPS only, (F) means FTP only--anyauth Pick "any" authentication method (H)-a, --append Append to target file when uploading (F/SFTP)--basic Use HTTP Basic Authentication (H)--cacert FILE CA certificate to verify peer against (SSL)--capath DIR CA directory to verify peer against (SSL)-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)--ciphers LIST SSL ciphers to use (SSL)--compressed Request compressed response (using deflate or gzip)-K, --config FILE Specify which config file to read--connect-timeout SECONDS Maximum time allowed for connection-C, --continue-at OFFSET Resumed transfer offset-b, --cookie STRING/FILE String or file to read cookies from (H)-c, --cookie-jar FILE Write cookies to this file after operation (H)--create-dirs Create necessary local directory hierarchy--crlf Convert LF to CRLF in upload--crlfile FILE Get a CRL list in PEM format from the given file-d, --data DATA HTTP POST data (H)--data-ascii DATA HTTP POST ASCII data (H)--data-binary DATA HTTP POST binary data (H)--data-urlencode DATA HTTP POST data url encoded (H)--delegation STRING GSS-API delegation permission--digest Use HTTP Digest Authentication (H)--disable-eprt Inhibit using EPRT or LPRT (F)--disable-epsv Inhibit using EPSV (F)-D, --dump-header FILE Write the headers to this file--egd-file FILE EGD socket path for random data (SSL)--engine ENGINGE Crypto engine (SSL). "--engine list" for list-f, --fail Fail silently (no output at all) on HTTP errors (H)-F, --form CONTENT Specify HTTP multipart POST data (H)--form-string STRING Specify HTTP multipart POST data (H)--ftp-account DATA Account data string (F)--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)--ftp-create-dirs Create the remote dirs if not present (F)--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)--ftp-pasv Use PASV/EPSV instead of PORT (F)-P, --ftp-port ADR Use PORT with given address instead of PASV (F)--ftp-skip-pasv-ip Skip the IP address for PASV (F)--ftp-pret Send PRET before PASV (for drftpd) (F)--ftp-ssl-ccc Send CCC after authenticating (F)--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)-G, --get Send the -d data with a HTTP GET (H)-g, --globoff Disable URL sequences and ranges using {} and []-H, --header LINE Custom header to pass to server (H)-I, --head Show document info only-h, --help This help text--hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)-0, --http1.0 Use HTTP 1.0 (H)--ignore-content-length Ignore the HTTP Content-Length header-i, --include Include protocol headers in the output (H/F)-k, --insecure Allow connections to SSL sites without certs (H)--interface INTERFACE Specify network interface/address to use-4, --ipv4 Resolve name to IPv4 address-6, --ipv6 Resolve name to IPv6 address-j, --junk-session-cookies Ignore session cookies read from file (H)--keepalive-time SECONDS Interval between keepalive probes--key KEY Private key file name (SSL/SSH)--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)--krb LEVEL Enable Kerberos with specified security level (F)--libcurl FILE Dump libcurl equivalent code of this command line--limit-rate RATE Limit transfer speed to this rate-l, --list-only List only names of an FTP directory (F)--local-port RANGE Force use of these local port numbers-L, --location Follow redirects (H)--location-trusted like --location and send auth to other hosts (H)-M, --manual Display the full manual--mail-from FROM Mail from this address--mail-rcpt TO Mail to this receiver(s)--mail-auth AUTH Originator address of the original email--max-filesize BYTES Maximum file size to download (H/F)--max-redirs NUM Maximum number of redirects allowed (H)-m, --max-time SECONDS Maximum time allowed for the transfer--metalink Process given URLs as metalink XML file--negotiate Use HTTP Negotiate Authentication (H)-n, --netrc Must read .netrc for user name and password--netrc-optional Use either .netrc or URL; overrides -n--netrc-file FILE Set up the netrc filename to use-N, --no-buffer Disable buffering of the output stream--no-keepalive Disable keepalive use on the connection--no-sessionid Disable SSL session-ID reusing (SSL)--noproxy List of hosts which do not use proxy--ntlm Use HTTP NTLM authentication (H)-o, --output FILE Write output to <file> instead of stdout--pass PASS Pass phrase for the private key (SSL/SSH)--post301 Do not switch to GET after following a 301 redirect (H)--post302 Do not switch to GET after following a 302 redirect (H)--post303 Do not switch to GET after following a 303 redirect (H)-#, --progress-bar Display transfer progress as a progress bar--proto PROTOCOLS Enable/disable specified protocols--proto-redir PROTOCOLS Enable/disable specified protocols on redirect-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port--proxy-anyauth Pick "any" proxy authentication method (H)--proxy-basic Use Basic authentication on the proxy (H)--proxy-digest Use Digest authentication on the proxy (H)--proxy-negotiate Use Negotiate authentication on the proxy (H)--proxy-ntlm Use NTLM authentication on the proxy (H)-U, --proxy-user USER[:PASSWORD] Proxy user and password--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)--pubkey KEY Public key file name (SSH)-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)--random-file FILE File for reading random data from (SSL)-r, --range RANGE Retrieve only the bytes within a range--raw Do HTTP "raw", without any transfer decoding (H)-e, --referer Referer URL (H)-J, --remote-header-name Use the header-provided filename (H)-O, --remote-name Write output to a file named as the remote file--remote-name-all Use the remote file name for all URLs-R, --remote-time Set the remote file's time on the local output-X, --request COMMAND Specify request command to use--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS --retry NUM Retry request NUM times if transient problems occur--retry-delay SECONDS When retrying, wait this many seconds between each --retry-max-time SECONDS Retry only within this period-S, --show-error Show error. With -s, make curl show errors when they occur-s, --silent Silent mode. Don't output anything--socks4 HOST[:PORT] SOCKS4 proxy on given host + port--socks4a HOST[:PORT] SOCKS4a proxy on given host + port--socks5 HOST[:PORT] SOCKS5 proxy on given host + port--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy--socks5-gssapi-service NAME SOCKS5 proxy service name for gssapi--socks5-gssapi-nec Compatibility with NEC SOCKS5 server-Y, --speed-limit RATE Stop transfers below speed-limit for 'speed-time' secs -y, --speed-time SECONDS Time for trig speed-limit abort. Defaults to 30--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)-2, --sslv2 Use SSLv2 (SSL)-3, --sslv3 Use SSLv3 (SSL)--ssl-allow-beast Allow security flaw to improve interop (SSL) --stderr FILE Where to redirect stderr. - means stdout--tcp-nodelay Use the TCP_NODELAY option-t, --telnet-option OPT=VAL Set telnet option--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512) -z, --time-cond TIME Transfer based on a time condition-1, --tlsv1 Use => TLSv1 (SSL)--tlsv1.0 Use TLSv1.0 (SSL)--tlsv1.1 Use TLSv1.1 (SSL)--tlsv1.2 Use TLSv1.2 (SSL)--trace FILE Write a debug trace to the given file--trace-ascii FILE Like --trace but without the hex output--trace-time Add time stamps to trace/verbose output--tr-encoding Request compressed transfer encoding (H)-T, --upload-file FILE Transfer FILE to destination--url URL URL to work with-B, --use-ascii Use ASCII/text transfer-u, --user USER[:PASSWORD] Server user and password--tlsuser USER TLS username--tlspassword STRING TLS password--tlsauthtype STRING TLS authentication type (default SRP) --unix-socket FILE Connect through this UNIX domain socket -A, --user-agent STRING User-Agent to send to server (H)-v, --verbose Make the operation more talkative-V, --version Show version number and quit-w, --write-out FORMAT What to output after completion--xattr Store metadata in extended file attributes-q If used as the first parameter disables .curlrc。

curl请求模拟post发送json

curl请求模拟post发送json

curl请求模拟post发送json 解释:curl -hUsage: curl [options...] <url>Options: (H) means HTTP/HTTPS only, (F) means FTP only--anyauth Pick "any" authentication method (H)-a, --append Append to target file when uploading (F/SFTP)--basic Use HTTP Basic Authentication (H)--cacert FILE CA certificate to verify peer against (SSL)--capath DIR CA directory to verify peer against (SSL)-E, --cert CERT[:PASSWD] Client certificate file and password (SSL)--cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)--ciphers LIST SSL ciphers to use (SSL)--compressed Request compressed response (using deflate or gzip)-K, --config FILE Specify which config file to read--connect-timeout SECONDS Maximum time allowed for connection-C, --continue-at OFFSET Resumed transfer offset-b, --cookie STRING/FILE String or file to read cookies from (H)-c, --cookie-jar FILE Write cookies to this file after operation (H)--create-dirs Create necessary local directory hierarchy--crlf Convert LF to CRLF in upload--crlfile FILE Get a CRL list in PEM format from the given file-d, --data DATA HTTP POST data (H)--data-ascii DATA HTTP POST ASCII data (H)--data-binary DATA HTTP POST binary data (H)--data-urlencode DATA HTTP POST data url encoded (H)--delegation STRING GSS-API delegation permission--digest Use HTTP Digest Authentication (H)--disable-eprt Inhibit using EPRT or LPRT (F)--disable-epsv Inhibit using EPSV (F)-D, --dump-header FILE Write the headers to this file--egd-file FILE EGD socket path for random data (SSL)--engine ENGINGE Crypto engine (SSL). "--engine list" for list-f, --fail Fail silently (no output at all) on HTTP errors (H)-F, --form CONTENT Specify HTTP multipart POST data (H)--form-string STRING Specify HTTP multipart POST data (H)--ftp-account DATA Account data string (F)--ftp-alternative-to-user COMMAND String to replace "USER [name]" (F)--ftp-create-dirs Create the remote dirs if not present (F)--ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)--ftp-pasv Use PASV/EPSV instead of PORT (F)-P, --ftp-port ADR Use PORT with given address instead of PASV (F)--ftp-skip-pasv-ip Skip the IP address for PASV (F)--ftp-pret Send PRET before PASV (for drftpd) (F)--ftp-ssl-ccc Send CCC after authenticating (F)--ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)--ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F)-G, --get Send the -d data with a HTTP GET (H)-g, --globoff Disable URL sequences and ranges using {} and []-H, --header LINE Custom header to pass to server (H)-I, --head Show document info only-h, --help This help text--hostpubmd5 MD5 Hex encoded MD5 string of the host public key. (SSH)-0, --http1.0 Use HTTP 1.0 (H)--ignore-content-length Ignore the HTTP Content-Length header-i, --include Include protocol headers in the output (H/F)-k, --insecure Allow connections to SSL sites without certs (H)--interface INTERFACE Specify network interface/address to use-4, --ipv4 Resolve name to IPv4 address-6, --ipv6 Resolve name to IPv6 address-j, --junk-session-cookies Ignore session cookies read from file (H)--keepalive-time SECONDS Interval between keepalive probes--key KEY Private key file name (SSL/SSH)--key-type TYPE Private key file type (DER/PEM/ENG) (SSL)--krb LEVEL Enable Kerberos with specified security level (F)--libcurl FILE Dump libcurl equivalent code of this command line--limit-rate RATE Limit transfer speed to this rate-l, --list-only List only names of an FTP directory (F)--local-port RANGE Force use of these local port numbers-L, --location Follow redirects (H)--location-trusted like --location and send auth to other hosts (H)-M, --manual Display the full manual--mail-from FROM Mail from this address--mail-rcpt TO Mail to this receiver(s)--mail-auth AUTH Originator address of the original email--max-filesize BYTES Maximum file size to download (H/F)--max-redirs NUM Maximum number of redirects allowed (H)-m, --max-time SECONDS Maximum time allowed for the transfer--metalink Process given URLs as metalink XML file--negotiate Use HTTP Negotiate Authentication (H)-n, --netrc Must read .netrc for user name and password--netrc-optional Use either .netrc or URL; overrides -n--netrc-file FILE Set up the netrc filename to use-N, --no-buffer Disable buffering of the output stream--no-keepalive Disable keepalive use on the connection--no-sessionid Disable SSL session-ID reusing (SSL)--noproxy List of hosts which do not use proxy--ntlm Use HTTP NTLM authentication (H)-o, --output FILE Write output to <file> instead of stdout--pass PASS Pass phrase for the private key (SSL/SSH)--post301 Do not switch to GET after following a 301 redirect (H)--post302 Do not switch to GET after following a 302 redirect (H)--post303 Do not switch to GET after following a 303 redirect (H)-#, --progress-bar Display transfer progress as a progress bar--proto PROTOCOLS Enable/disable specified protocols--proto-redir PROTOCOLS Enable/disable specified protocols on redirect-x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port--proxy-anyauth Pick "any" proxy authentication method (H)--proxy-basic Use Basic authentication on the proxy (H)--proxy-digest Use Digest authentication on the proxy (H)--proxy-negotiate Use Negotiate authentication on the proxy (H)--proxy-ntlm Use NTLM authentication on the proxy (H)-U, --proxy-user USER[:PASSWORD] Proxy user and password--proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port-p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)--pubkey KEY Public key file name (SSH)-Q, --quote CMD Send command(s) to server before transfer (F/SFTP)--random-file FILE File for reading random data from (SSL)-r, --range RANGE Retrieve only the bytes within a range--raw Do HTTP "raw", without any transfer decoding (H)-e, --referer Referer URL (H)-J, --remote-header-name Use the header-provided filename (H)-O, --remote-name Write output to a file named as the remote file--remote-name-all Use the remote file name for all URLs-R, --remote-time Set the remote file's time on the local output-X, --request COMMAND Specify request command to use--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS --retry NUM Retry request NUM times if transient problems occur--retry-delay SECONDS When retrying, wait this many seconds between each --retry-max-time SECONDS Retry only within this period-S, --show-error Show error. With -s, make curl show errors when they occur-s, --silent Silent mode. Don't output anything--socks4 HOST[:PORT] SOCKS4 proxy on given host + port--socks4a HOST[:PORT] SOCKS4a proxy on given host + port--socks5 HOST[:PORT] SOCKS5 proxy on given host + port--socks5-hostname HOST[:PORT] SOCKS5 proxy, pass host name to proxy--socks5-gssapi-service NAME SOCKS5 proxy service name for gssapi--socks5-gssapi-nec Compatibility with NEC SOCKS5 server-Y, --speed-limit RATE Stop transfers below speed-limit for 'speed-time' secs -y, --speed-time SECONDS Time for trig speed-limit abort. Defaults to 30--ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)--ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)-2, --sslv2 Use SSLv2 (SSL)-3, --sslv3 Use SSLv3 (SSL)--ssl-allow-beast Allow security flaw to improve interop (SSL) --stderr FILE Where to redirect stderr. - means stdout--tcp-nodelay Use the TCP_NODELAY option-t, --telnet-option OPT=VAL Set telnet option--tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512) -z, --time-cond TIME Transfer based on a time condition-1, --tlsv1 Use => TLSv1 (SSL)--tlsv1.0 Use TLSv1.0 (SSL)--tlsv1.1 Use TLSv1.1 (SSL)--tlsv1.2 Use TLSv1.2 (SSL)--trace FILE Write a debug trace to the given file--trace-ascii FILE Like --trace but without the hex output--trace-time Add time stamps to trace/verbose output--tr-encoding Request compressed transfer encoding (H)-T, --upload-file FILE Transfer FILE to destination--url URL URL to work with-B, --use-ascii Use ASCII/text transfer-u, --user USER[:PASSWORD] Server user and password--tlsuser USER TLS username--tlspassword STRING TLS password--tlsauthtype STRING TLS authentication type (default SRP) --unix-socket FILE Connect through this UNIX domain socket -A, --user-agent STRING User-Agent to send to server (H)-v, --verbose Make the operation more talkative-V, --version Show version number and quit-w, --write-out FORMAT What to output after completion--xattr Store metadata in extended file attributes-q If used as the first parameter disables .curlrc。

PHP基于CURL发送JSON格式字符串的方法示例

PHP基于CURL发送JSON格式字符串的方法示例
$ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, array(
这篇文章主要介绍了php自定义函数实现assign数组分配到模板及extract变量分配到模板功能可模拟tp框架中模板变量分配功能涉及php基于面向对象的数组赋值相关操作技巧需要的朋友可以参考下
PHP基于 CURL发送 JSON格式字符串的方法示例
本文实例讲述了PHP基于CURL发送JSON格式字符串的方法。分享给大家供大家参考,具体如下:
'Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($data_string)) ); ob_start(); curl_exec($ch); $return_content = ob_get_contents(); ob_end_clean(); $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); return array('code'=>$return_code, 'result'=>$return_content); } $arr = array('a'=>'555','b'=>56454564); dump(post_json_data('http://192.168.211.1/html/dump.php',json_encode($arr)));

PHP实现支持CURL字符串证书传输的方法

PHP实现支持CURL字符串证书传输的方法

PHP实现⽀持CURL字符串证书传输的⽅法背景最近在对接微信⽀付的时候,需要在退款处⽤到证书,由于我们是SAAS平台,要⽀持多⽅多渠道⽀付,如果把所有证书⽂件保存在应⽤服务器会受到SLB的影响,会导致某台机器⽂件不同步⽽阻碍退款流程,但把⽂件存在OSS的话,后端⼜要从OSS下载到应⽤服务器来保证⼀致性。

思来想去,最终决定将证书内容保存在数据库,不同客户各对应⼀份证书⽂件,⽆论⼏台机器做集群都能保证⽂件的⼀致性,同时也避免了多余的下载步骤。

问题但是刚做就遇到了问题,PHP的CURL证书并不⽀持字符串的传输,只能填写证书路径(以下是官⽅的说法)Client certificates must be specified by a path expression to a certificate store.解决过程我第⼀个想到的就是创建空⽩⽂件,将证书内容写进去,等证书使⽤完毕后再将⽂件删除,但是创建实体⽂件再删除的操作消耗性能不说,还⾮常⿇烦,有没有创建临时⽂件的⽅法呢?有,tmpfile()函数就可以帮我们创建临时⽂件并拿到⽂件路径,于是我写了⼀个获取临时⽂件路径的⽅法<?phppublic function getTmpPathByContent($content){$tmpFile = tmpfile();fwrite($tmpFile, $content);$tempPemPath = stream_get_meta_data($tmpFile);return $tempPemPath['uri']; ///tmp/phpXZCtAO}>⽐较悲哀的是,通过这个⽅法返回的路径根本读不到内容,甚⾄⼀度以为是不是被骗了file_get_contents(/tmp/phpyyiOZv): failed to open stream: No such file or directory看了官⽅⽂档才找到原因,如果tmpfile()返回的句柄引⽤计数为0的话就会将临时⽂件回收,临时路径⾃然也就失效了,显然⽅法getTmpPathByContent()执⾏完后,局部变量$tmpFile的⽣命周期就结束了(官⽅⽂档如下)The file is automatically removed when closed (for example, by calling fclose(), or when there are no remainingreferences to the file handle returned by tmpfile()), or when the script ends.确认了根源,那我们现在亟需找到⼀个⽣命周期随进程结束⽽终⽌的变量类型来保存句柄,什么类型能满⾜条件呢?静态变量。

PHPCURL详解

PHPCURL详解

PHPCURL详解curl函数参数说明:名称说明curl_close 关闭⼀个curl会话curl_copy_handle 拷贝⼀个curl连接资源的所有内容和参数curl_errno 返回⼀个包含当前会话错误信息的数字编号curl_error 返回⼀个包含当前会话错误信息的字符串curl_exec 执⾏⼀个curl会话curl_getinfo 获取⼀个curl连接资源句柄的信息curl_init 初始化⼀个curl会话curl_multi_add_handle 向curl批处理会话中添加单独的curl句柄资源curl_multi_close 关闭⼀个批处理句柄资源curl_multi_exec 解析⼀个curl批处理句柄curl_multi_getcontent 返回获取的输出的⽂本流curl_multi_info_read 获取当前解析的curl的相关传输信息curl_multi_init 初始化⼀个curl批处理句柄资源curl_multi_remove_handle 移除curl批处理句柄资源中的某个句柄资源curl_multi_select Get all the sockets associated with the cURL extension, which can then be "selected"curl_setopt_array 以数组的形式为⼀个curl设置会话参数curl_setopt 为⼀个curl设置会话参数curl_version 获取curl相关的版本信息curl_setopt()参数名称说明CURLOPT_INFILESIZE 当你上传⼀个⽂件到远程站点,这个选项告诉PHP你上传⽂件的⼤⼩。

CURLOPT_VERBOSE 如果你想CURL报告每⼀件意外的事情,设置这个选项为⼀个⾮零值。

CURLOPT_HEADER 如果你想把⼀个头包含在输出中,设置这个选项为⼀个⾮零值。

php最简单的curl请求

php最简单的curl请求

PHP最简单的curl请求一、什么是curl请求Curl(Client for URLs)是一个用于传输数据的工具和库,它支持各种协议,包括HTTP、FTP、SMTP等。

在PHP中,我们可以使用curl来发送HTTP请求,获取远程服务器的数据。

二、为什么选择curl使用curl进行HTTP请求有以下几个优点:1.灵活性:curl支持各种HTTP请求方法(GET、POST、PUT等),可以设置请求头和请求体,还可以处理重定向和Cookie等功能。

2.可靠性:curl是一个经过广泛测试和使用的工具,可以处理各种复杂的网络请求场景。

3.性能:curl是一个高性能的工具,可以并发处理多个请求,提高请求的效率。

三、使用curl发送最简单的GET请求使用curl发送最简单的GET请求非常简单,只需要几行代码即可完成。

<?php// 初始化curl$ch = curl_init();// 设置请求的URL地址curl_setopt($ch, CURLOPT_URL, '// 执行请求并获取返回结果$response = curl_exec($ch);// 关闭curlcurl_close($ch);// 输出返回结果echo $response;>以上代码中,首先我们使用curl_init()函数初始化了一个curl句柄,然后使用curl_setopt()函数设置请求的URL地址,最后使用curl_exec()函数执行请求并获取返回结果。

最后,我们使用curl_close()函数关闭curl句柄,并输出返回结果。

四、发送带参数的GET请求有时候我们需要在GET请求中传递一些参数,可以通过在URL中添加查询字符串的方式进行传递。

<?php// 初始化curl$ch = curl_init();// 设置请求的URL地址curl_setopt($ch, CURLOPT_URL, '// 执行请求并获取返回结果$response = curl_exec($ch);// 关闭curlcurl_close($ch);// 输出返回结果echo $response;>以上代码中,我们在URL地址中添加了查询字符串param1=value1&param2=value2,这样就可以将参数传递给服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用php curl发送json数据与curl post其它数据是一样的,下面我来给大家总结几个关于curl post 发送json数据实例,希望能加深各位对curl post json数据的理解吧。

例1
代码如下复制代码$data = array("name" => "Hagrid", "age" => "36"); $data_string = json_encode($data);
$ch = curl_init('http://api.local/rest/users');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
例2
代码如下复制代码function http_post_data($url, $data_string) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($data_string))
);
ob_start();
curl_exec($ch);
$return_content = ob_get_contents();
ob_end_clean();
$return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return array($return_code, $return_content);
}
$url = "";
$data = json_encode(array('a'=>1, 'b'=>2));
list($return_code, $return_content) = http_post_data($url, $data);
例3
代码如下复制代码
$data=' {
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"歌手简介",
"key":"V1001_TODAY_SINGER"
},
{
"name":"菜单",
"sub_button":[
{
"type":"click",
"name":"hello word",
"key":"V1001_HELLO_WORLD"
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}';
$ch = curl_init($urlcon); //请求的URL地址
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//$data JSON类型字符串
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$data = curl_exec($ch);
print_r($data);//创建成功返回:{"errcode":0,"errmsg":"ok"}
小结,我们发现最核心的一句代码就是Content-Type: application/json;这个是文件格式类型了。

相关文档
最新文档