PHP中curl三种Post请求数据的方式小结

 更新时间:2023年09月06日 10:34:54   作者:m0_69254007  
这篇文章主要给大家介绍了关于PHP中curl三种Post请求数据的方式,在PHP开发的过程中经常需要发送POST请求,POST相比GET要安全很多,而且传输的数据量也较大,需要的朋友可以参考下

今天要讲的HTTP请求头的Content-Type字段,就是在curl发送post请求的时候需要指定以何种方式来请求数据,常用的有3类:

1、form-data 。

就是 multipart/form-data 使用表单的方式来发送数据 是curl采用的默认发送方式。请求数组类型的格式。

Content-Type: multipart/form-data

2、x-www-form-urlencoded 。

就是 application/x-www-form-urlencoded 把请求的内容转变成url参数的形式进行发送,如:s1=red&s2=blue,这是标准的编码格式,但在curl中却不是默认的发送方式。可以使用http_build_query ()函数将表单数据数组编码为一个字符串。

Content-Type: x-www-form-urlencoded

3、raw(text/plain application/json text/xml等)。

是以纯文本的方式发送数据,可以选择json、xml等格式。请求json格式的数据。

Content-Type: application/json

 分析:发现Content-Type的类型取决于$data的数据类型。如果$data是字符串,则Content-Type是application/x-www-form-urlencoded。如果$data是k=>v的数组,则Content-Type是multipart/form-data。

请求示例

// 模拟提交数据函数
public function httpPost($url,$data){
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_POST, true); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS,  $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, false); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回
    $result = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
        return 'Error POST'.curl_error($curl);
    }
    curl_close($curl); // 关键CURL会话
    return $result; // 返回数据
}

总结 

到此这篇关于PHP中curl三种Post请求数据的方式的文章就介绍到这了,更多相关PHP curl Post请求数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PHP利用ueditor实现上传图片添加水印

    PHP利用ueditor实现上传图片添加水印

    在上传图片时,有时需要添加水印。如果每个都用PS添加的话,会有些麻烦。本文将为大家介绍PHP如何利用ueditor实现上传图片添加水印,感兴趣的可以了解一下
    2022-07-07
  • PHP与Java对比学习日期时间函数

    PHP与Java对比学习日期时间函数

    本文给大家介绍的是从Java和PHP进行对比复习了下日期时间的处理函数,并给出了一些示例,希望对大家能够有所帮助
    2016-07-07
  • PHP实现单例模式建立数据库连接的方法分析

    PHP实现单例模式建立数据库连接的方法分析

    这篇文章主要介绍了PHP实现单例模式建立数据库连接的方法,结合实例形式分析了PHP单例模式的概念、原理及使用单例模式实现数据库连接的相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • Laravel中使用阿里云OSS Composer包分享

    Laravel中使用阿里云OSS Composer包分享

    这篇文章主要介绍了Laravel中使用阿里云OSS Composer包分享,本文讲解其使用方法,文件下载请前往文件中的github地址,需要的朋友可以参考下
    2015-02-02
  • 详解PHP版本兼容之openssl调用参数

    详解PHP版本兼容之openssl调用参数

    这篇文章给大家分享了PHP版本兼容之openssl调用参数的详细说明,有兴趣的朋友参考学习下。
    2018-07-07
  • PHP获取当前所在目录位置的方法

    PHP获取当前所在目录位置的方法

    这篇文章主要介绍了PHP获取当前所在目录位置的方法,涉及getcwd(0函数的用法以及相关的PHP目录操作函数的使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP文件上传功能实现逻辑分析

    PHP文件上传功能实现逻辑分析

    文件上传是开发中常见的一个功能,下面这篇文章主要给大家介绍了关于PHP文件上传实现逻辑分析,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 关于Appserv无法打开localhost问题的解决方法

    关于Appserv无法打开localhost问题的解决方法

    安装了Appserv时,无法打开http://localhost或是http://127.0.0.1 下面的具体的解决方法,大家可以参考下。多注意看下端口占用问题。
    2009-10-10
  • php获取网站百度快照日期的方法

    php获取网站百度快照日期的方法

    这篇文章主要介绍了php获取网站百度快照日期的方法,涉及php页面读取及正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法

    php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法

    这篇文章主要介绍了php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法,结合实例形式分析了mcrypt_encrypt和mcrypt_decrypt函数进行加密、解密的相关使用技巧,需要的朋友可以参考下
    2016-07-07

最新评论