1、post https提交 方法

  1. function curl_post2($url='', $postdata='', $options=array()){
  2. $ch = curl_init($url);
  3.  
  4. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
  6. curl_setopt($ch, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
  7.  
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($ch, CURLOPT_POST, 1);
  10. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  11. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  12. if (!empty($options)){
  13. curl_setopt_array($ch, $options);
  14. }
  15. $data = curl_exec($ch);
  16. curl_close($ch);
  17. return $data;
  18. }

  

2、普通post提交

  1. //通过curl模拟post的请求;
  2. function SendDataByCurl($url,$data=array()){
  3. //对空格进行转义
  4. $url = str_replace(' ','+',$url);
  5. $ch = curl_init();
  6. //设置选项,包括URL
  7. curl_setopt($ch, CURLOPT_URL, "$url");
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($ch, CURLOPT_HEADER, 0);
  10. curl_setopt($ch,CURLOPT_TIMEOUT,3); //定义超时3秒钟
  11. // POST数据
  12. curl_setopt($ch, CURLOPT_POST, 1);
  13. // 把post的变量加上
  14. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //所需传的数组用http_bulid_query()函数处理一下,就ok了
  15.  
  16. //执行并获取url地址的内容
  17. $output = curl_exec($ch);
  18. $errorCode = curl_errno($ch);
  19. //释放curl句柄
  20. curl_close($ch);
  21. if(0 !== $errorCode) {
  22. return false;
  23. }
  24. return $output;
  25.  
  26. }
  27.  
  28. function curl_post($url='', $postdata='', $options=array()){
  29. $ch = curl_init($url);
  30. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  31. curl_setopt($ch, CURLOPT_POST, 1);
  32. curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
  33. curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  34. if (!empty($options)){
  35. curl_setopt_array($ch, $options);
  36. }
  37. $data = curl_exec($ch);
  38. curl_close($ch);
  39. return $data;
  40. }

  

3、curl get提交

  1. function curl_get($url='', $options=array()){
  2. $ch = curl_init($url);
  3. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  4. curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  5. if (!empty($options)){
  6. curl_setopt_array($ch, $options);
  7. }
  8. $data = curl_exec($ch);
  9. curl_close($ch);
  10. return $data;
  11. }

  

参考:

  1. function vpost($url,$data,$cookie){ // 模拟提交数据函数
  2. $curl = curl_init(); // 启动一个CURL会话
  3. curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
  4. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  5. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  6. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  7. curl_setopt($curl, CURLOPT_COOKIE, $cookie);
  8. curl_setopt($curl, CURLOPT_REFERER,'https://www.baidu.com');// 设置Referer
  9. curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  10. curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  11. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  12. curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  13. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  14. $tmpInfo = curl_exec($curl); // 执行操作
  15. if (curl_errno($curl)) {
  16. echo 'Errno'.curl_error($curl);//捕抓异常
  17. }
  18. curl_close($curl); // 关闭CURL会话
  19. return $tmpInfo; // 返回数据
  20. }

  

php curl 提交 总结的更多相关文章

  1. curl提交数据时中文乱码

    1.使用curl提交数据时中文乱码解决: <?php $testJSON=array('name'=>'中文字符串','value'=>'test'); foreach ( $tes ...

  2. 将多维数组转换为支持curl提交的一维数组格式

    /** * @desc 多维数组转化为支持curl提交数组 * @author lytian 2013-06-29 */ public function toPost(array $params = ...

  3. php使用curl提交xml数据

    $xml_data ='<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_ ...

  4. curl提交请求时,如何把cookie带过去

    curl请求有一个CURLOPT_COOKIE参数,把获取到的cookie内容,通过字符串组装,赋值给这个参数就可以了 例子:   $defaults = array( CURLOPT_URL =&g ...

  5. CURL提交--POST/GET-带header信息

    function https_request($url, $param, $data = '', $method = 'GET', $headers = '') { $opts = array( CU ...

  6. 使用 PHP cURL 提交 JSON 数据

    http://www.oschina.net/code/snippet_54100_7351 http://www.lornajane.net/posts/2011/posting-json-data ...

  7. curl 提交请求

    http://forums.phpfreaks.com/topic/194255-curl-sending-array-as-post-value/ http://www.cnblogs.com/ch ...

  8. Php 通过curl提交post内容为 Json的请求

    <?php $data = array("cNos" => array("1064917432615","1064917432615&qu ...

  9. PHP再学习1——cURL表单提交、HTTP请求和响应分析

    1.前言 最近迷恋WEB方面的技术,虽然自己是一个嵌入式工程师,但是我深知若需要把传感器终端的数据推送至“平台”必然会和WEB技术打交道.在工作中发现嵌入式工程师喜欢 二进制形式的协议,例如MODBU ...

随机推荐

  1. 【原】sql 将某列拼成一个字符串

    SQL Server中,写存储过程,时常会碰到这样一个需求:从某个表中取某一列,然后需要将这一列数据以某种形式拼成一个字符串,以供后面使用,下面这种方法能够实现此需求. --取说明书模块枚举,结果格式 ...

  2. [Bug-IOS] - linker command failed with exit code 1 (use -v to see invocation)

    Ld /Users/Rubert/Library/Developer/Xcode/DerivedData/OC_Language-emftyzftyvhdpuaxipddjmpnpvox/Build/ ...

  3. 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)

    Bubble Sort 题意: 给你一个1~n的排列,问冒泡排序过程中,数字i(1<=i<=n)所到达的最左位置与最右位置的差值的绝对值是多少 题解: 数字i多能到达的最左位置为min(s ...

  4. POJ 1410 Intersection(计算几何)

    题目大意:题目意思很简单,就是说有一个矩阵是实心的,给出一条线段,问线段和矩阵是否相交解题思路:用到了线段与线段是否交叉,然后再判断线段是否在矩阵里面,这里要注意的是,他给出的矩阵的坐标明显不是左上和 ...

  5. Mac下安装JDK 6

    https://support.apple.com/kb/DL1572?viewlocale=zh_CN&locale=en_US 下载 , 安装

  6. 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中

    context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...

  7. 用R在字符串中提取匹配的部分

    例如在aaaa12xxxx中提取12,在参考了stackoverflow后比较方便的大致有以下几种方法: 利用sub跟gsub sub(".*?([0-9]+).*", " ...

  8. 8 个 Git 的小技巧

    git 已经成为了我日常必备工具之一,我总结我几乎每天使用的8个有用(且简洁)的git技巧.   使用-p选择性添加 当你想提交内容时,你可以通过使用 git commit -am 来选择所有文件或使 ...

  9. Singleton 单例模板

    // singleton.h #ifndef SINGLETON_H #define SINGLETON_H // 单例基类模板 template <class T> class Sing ...

  10. java异常处理机制throw