php 发送post请求且header中带参数bug调试

  通常get方式header中带参数如下通过curl调用即可:

    function send_get_curl_header($url, $data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $data);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

  注意$data格式为数组[‘AppToken: ‘.$token],而post发送时要注意postData要进行http_build_query才能成功代码如下:

function send_post_curl_header($url, $header_data , $post_data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
    $sResult = curl_exec($ch);
    if($sError=curl_error($ch)){
        die($sError);
    }
    curl_close($ch);
    return $sResult;
}

  大家注意,此处花费了我一定的时间去调试。

原文地址:https://blog.51cto.com/jinjiang2009/2391562

时间: 2024-08-01 14:33:14

php 发送post请求且header中带参数bug调试的相关文章

QT断点续传(原理:需要在HTTP请求的header中添加Rang节,告诉服务器从文件的那个位置开始传输.格式为bytes 开始传输的位置)

//功能:    根据一个URL地址将数据保存到指定路径下,支持断点续传//参数:    url            --需要访问的URL地址//         SavePath       --需要保存的路径//DownedSize 已经下载的大小// totalSize 文件总大小//返回值:  ture --成功 false --失败bool HttpGet::DownFile(const QUrl &url,const QString &SavePath,int DownedS

Struts2中带参数的结果集

1.在Struts2中带参数的结果集,即向结果集传参.struts2中有转发和重定向到某个视图,其中转发的过程在服务端完成,这个过程共享一个value stack(值栈),客户端并不知道页面跳转到了哪个jsp页面,其地址栏中显示的是所请求的action地址:在这个转发的过程中,参数值是共享的.其中重定向的话,服务器收到请求后,发现需要重定向,然后把需要重新访问的请求地址发给客户端,客户端重新发起请求,这个过程中,客户端知道自己访问的jsp页面的具体地址,其地址栏显示的是jsp页面的实际地址,并且

JQuery发送ajax请求不能用数组作为参数

JQuery发送ajax请求不能用数组作为参数,否则会接收不到参数, 一.js代码如下: $('#delete-button').click(function(){        var selectedMembers = document.getElementsByName('selectedMembers');        var cwIds = new Array(); //定义数组        for(var i=0;i<selectedMembers.length;i++){  

在url中带参数

如果只是在url中带参数的需求,比如tabs的话,都是本页面的切换 那步骤是 1.在当前页面的路由传入你所需要在url中显示的参数,例如 { path: 'workorder', name: 'workorder', menuName: '企业工单', ifMenu: true, icon: 'iip-fa iip-fa-file', component: () => import('@/views/workorder/CompanyWorkorder.vue'), meta: { typeNa

【spring教程之二】spring注入xml中带参数的构造函数

1.续上文,如果想在注入bean文件的时候,传入参数到构造函数中.主要需要修改的就是spring.xml配置文件中的配置方法. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

Java基础---Java中带参数无返回值方法的使用(三十九)

Java 中带参无返回值方法的使用 有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行.例如,现实生活中电饭锅可以实现"煮饭"的功能,但前提是我们必须提供食材,如果我们什么都不提供,那就真是的"巧妇难为无米之炊"了.我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据. 我们先来看一个带参数,但没有返回值的方法: 上面的代码定义了一个 show 方法,带有一个参数 name

Java基础---Java中带参数返回值方法的使用(四十)

Java 中带参带返回值方法的使用 如果方法既包含参数,又带有返回值,我们称为带参带返回值的方法. 例如:下面的代码,定义了一个 show 方法,带有一个参数 name ,方法执行后返回一个 String 类型的结果 调用带参带返回值的方法: 运行结果: 代码: import java.util.Arrays; public class HelloWorld {    public static void main(String[] args) {  HelloWorld hello = new

C语言中带参数的宏

带参数的宏定义有如下的格式: [#define 指令----带参数的宏] #define 标识符(x1,x2,……,xn) 其中  x1,x2,……xn是标志符(宏的参数) 注意:在宏的名字和括号之间必修没有空格. 如果有空格,预处理会认为是在定义一个简单的宏,其中(x1,x2,……,xn)是替换列表的一部分 当预处理器遇到一个带参数的宏,会将定义存储起来以便以后使用.在后面的程序中,如果任何地方出现了标识符(y1,y2……,yn)格式的宏调用(其中y1,y2, ……yn是一些列标记),预处理器

Python中带参数的装饰器

装饰器本身是用来是为一个函数是实现新的功能,并且不改变原函数的代码以及调用方式. 遇到这样一种问题: 众多函数调用了你写的装饰器,但客户有需求说,我想实现我可以随之控制装饰器是否生效. 那你就不可能在得到命令的时候去原函数头部去做删除和添加装饰器调用的命令.这是就可以用到带参数的装饰器,定义一个开关,调用装饰器的时候,把这个装饰器的开关参数给传递进去,这样当开关打开的时候装饰器生效,关闭的时候则只执行原函数的代码. 举例:开关参数为True的时候执行过程: 1 F = True #step 1