首页 > 其他分享 >curl 请求接口数据

curl 请求接口数据

时间:2023-10-21 10:38:39浏览次数:30  
标签:ch 请求 接口 SSL curl 鉴权 CURLOPT setopt



CURL 操作

  • 初始化
  • 指定的接口地址 url 就是 $postUrl
  • 需要用户和密码鉴权,需要头部传递信息
  • 对认证证书来源的检查 和 从证书中检查SSL加密算法是否存在
  • 模拟用户使用的浏览器
  • 设置端口
  • 表示需要response body
  • 要求结果为字符串且输出到屏幕上
  • post提交方式
  • 添加头,在name和pass处填写对应账号密码(需要用户鉴权,否则不要添加)
  • 传递数据,这里的$dataJson是json格式
  • 运行curl,获得结果 $data


初始化

$ch = curl_init();

指定的接口地址 url 就是 $postUrl

curl_setopt($ch,  CURLOPT_URL, $postUrl);

需要用户和密码鉴权,需要头部传递信息

curl_setopt($ch, CURLOPT_HEADER, true);

对认证证书来源的检查 和 从证书中检查SSL加密算法是否存在

(一般用于接口是https://的,否则不需要添加)

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

模拟用户使用的浏览器

curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

设置端口

curl_setopt($ch, CURLOPT_PORT, 8443);

表示需要response body

curl_setopt($ch, CURLOPT_NOBODY, FALSE);

要求结果为字符串且输出到屏幕上

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

post提交方式

curl_setopt($ch, CURLOPT_POST, TRUE);

添加头,在name和pass处填写对应账号密码(需要用户鉴权,否则不要添加)

$Header[] = "Content-Type:application/json";

$Header[] = "Authorization: Basic ".base64_encode("username:password"); 

curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);

传递数据,这里的$dataJson是json格式

curl_setopt($ch, CURLOPT_POSTFIELDS, $dataJson);

运行curl,获得结果 $data

$data = curl_exec( $ch );

curl_close($ch);


标签:ch,请求,接口,SSL,curl,鉴权,CURLOPT,setopt
From: https://blog.51cto.com/u_12591679/7964510

相关文章

  • 创建线程的三种方式:继承Thread、Runnable 接口、Callable 接口
    当在Java中创建线程时,有以下3种方法:1.通过实现Runnable接口:这是Java中创建线程的推荐方式,因为它允许你分离线程的任务(run方法)与线程的执行。以下是创建线程的步骤:创建一个实现Runnable接口的类,该接口包含一个run方法,这个方法将定义线程要执行的任务。classMyRunnableimpl......
  • celery包结构、celery延迟任务和定时任务、django中使用celery、接口缓存、双写一致性
    celery包结构project├──celery_task#celery包│├──__init__.py#包文件│├──celery.py#celery连接和配置相关文件,且名字必须叫celery.py│└──tasks.py#所有任务函数├──add_task.py#添加任务......
  • springdatajpa编写入门接口
    SDJ的一个牛逼的地方就是,它可以只编写JPA规范的接口,然后可以不用写实现类,然后,只要写了这个dao层接口,就可以实现最基本的CRUD操作,然而,要怎么实现JPA规范呢 写这个所谓的JPA规范接口,就是继承JpaRepository和JpaSpecificationExecutor两个接口说说第一个JR,就是它要放一个泛型,然......
  • 软件测试过程中如何有效的开展接口自动化测试
    一.简介接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中,通过对接口的自动化测试来提高测试效率和测试质量,减少人工测试的工作量和测试成本,并且能够快速发现和修复接口错误,确保软件系统的稳定性和可靠性。接口自动化测试......
  • java基础补习继承、抽象和接口
    之前java都是快速入手,很多的基础知识不牢固。没有系统学过。但是现在系统学也有点费时间,我就是碰到那些基础知识不懂或者不太明白时去找对应课程那一小节去学习那些知识。今天就小小学习了下java的继承、抽象还有接口等基础知识。 ......
  • 软件依赖管理-源码依赖、接口依赖、服务依赖
    在软件开发领域中,源码依赖、接口依赖和服务依赖是三种不同类型的依赖关系,它们有不同的特点和优缺点。下面我会详细解释它们的区别和各自的优缺点源码依赖(SourceCodeDependency)源码依赖是指一个软件项目依赖于其他软件项目的源代码。这通常发生在开源软件开发中,一个项目使用了......
  • Web前端使用 $.ajax 和 XMLHttpRequest 请求的区别
    1、首先是我使用XMLHttpRequest进行后台请求,我在请求前。会把按钮置为灰色。 $('button[type="generateProductBop"]').css("background-color","#d4d4d4");在最后的finally才把按钮,重新置换回来原来的颜色$('button[type="generateProductBop"]').css(......
  • 类和接口
    类和接口今日份学习final关键字和接口。final关键字凡是被final关键字修饰过的内容都是不可改变的。final变量final关键字可用于声明变量,一旦变量被设定,就不可以再改变该变量的值。通常,由final关键字定义的变量为常量。final关键字定义的变量必须在声明时对它进行赋值操作。它除了......
  • 2023年CANN训练营第二季——叭一叭几款AscendC算子支持芯片的运算单元以及AscendC提供
    前言:    我们知道昇腾AI芯片,有1个或多个AiCore,AiCore上有Cube和Vector运算单元提供给算子进行运算,有的AiCore是Cube和Vector一体的,有的Cube和Vector是分开,各自独立的。我们还记得例程中的例子一般都指定核心数BLOCK_DIM=8,这又是为什么,有啥道理呢?本文就来叭一叭,昇腾芯片的运......
  • 接口管理神器Apipost
    自诞生以来,Apipost凭借其简洁直观的用户界面、强大的功能以及简单、易上手的操作,让Apipost成为了开发人员不可或缺的工具。本文将详细介绍Apipost的主要功能和使用方法,帮助大家更好地了解这款优秀的API开发工具。下载安装直接进入Apipost官网下载即可,也可以直接使用web端无需下载AP......