返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >使用 PHP 的 cURL GET 请求
  • 762
分享到

使用 PHP 的 cURL GET 请求

2024-02-27 20:02:40 762人浏览 薄情痞子
摘要

在网络上,主要是 https,我们使用 GET 请求来获取特定的资源表示。为了获取数据,使用了 GET 方法。 特别是在 api 和 WEB 抓取场景中,开发人员使用特定于语言的方法。我们使用 cU

网络上,主要是 https,我们使用 GET 请求来获取特定的资源表示。为了获取数据,使用了 GET 方法。

特别是在 apiWEB 抓取场景中,开发人员使用特定于语言的方法。我们使用 cURL 函数来处理 PHP 中的 GET 请求。

cURL 库处理从初始化、连接设置和传输到资源返回的操作。为了实现所有这些操作,可以使用内置函数,例如 curl_close()curl_init()curl_exec()

本文讨论了 cURL GET 请求的不同用例以及实现它的相应函数。


使用 curl_init()curl_setopt()php 中获取请求

从另一个服务器或用户获取请求的典型格式涉及使用以下基本功能。


curl_init(); // initializes a cURL session
curl_setopt(); // changes the cURL session behavior with options
curl_exec(); // executes the started cURL session
curl_close(); // closes the cURL session and deletes the variable made by curl_init();

你将看到本文中的所有四个函数以及你将使用 cURL 库编写的大部分 GET 请求代码。

现在,对于一些示例用法,我们将为变量 $url 分配我们要从中获取请求的站点的 URL,并使用 curl_init() 函数启动 cURL 会话。之后,我们指定在指定 URL 上执行 cURL 传输的选项。

第一个 curl_setopt() 函数语句包含带有 $url 变量赋值的 URL to fetch 选项。第二个 curl_setopt() 函数语句包含字符串形式返回传输选项,包含一个布尔值。


<?php

$url = "Https://reqbin.com/echo";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

//for debug only!
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$resp = curl_exec($curl);
curl_close($curl);
var_dump($resp);

?>

上述 PHP 代码的输出如下。

在 PHP 中使用 curl_init 和 curl_setopt 获取请求


在 PHP 中将 cURL 与 API (JSON) 结合使用

通常,当与 API 交互时,数据响应通常是 jsON 并使用 cURL 函数,我们可以使用 curl_getinfo()json_encode() 函数以属性值对和数组格式正确处理这些数据对象,其中。

在这里,我们将与演示 User API 进行交互,使用 cURL 库获取 JSON 数据,并使用适当的函数对 JSON 文件进行编码。

  1. 初始化 URL 变量和 cURL 会话。

    $url = 'https://jsonplaceholder.typicode.com/users';
    // Sample example to get data.
    $resource = curl_init($url);
    
  2. 设置 cURL 选项和信息变量。

    curl_setopt($resource, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($resource);
    $info = curl_getinfo($resource);
    $code = curl_getinfo($resource, CURLINFO_HTTP_CODE);
    
  3. 调试以检查响应状态代码(可选步骤),但你应该看到 200

    echo $result.'<br>';
    echo "<pre>";
    print_r($info);
    echo "</pre>";
    
    // Get response status code
    echo "<pre>";
    print_r($code);
    echo "</pre>";
    
  4. 关闭 cURL 会话以更好地管理资源。

    curl_close($resource);
    
  5. 创建数组模板来存储通过 JSON 从 API 获取的数据。

    // set_opt_array
    $user = [
    	'name' => 'John Doe',
    	'username' => 'john',
    	'email' => 'john@example.com'
    ];
    
  6. 使用 curl_init()curl_setopt_array() 使用所有重要选项处理从 URL 解析的 JSON 数据。

    $resource = curl_init();
    curl_setopt_array($resource, [
    	CURLOPT_URL => $url,
    	CURLOPT_RETURNTRANSFER => true,
    	CURLOPT_POST => true,
    	CURLOPT_HTTPHEADER => ['content-type: application/json'],
    	CURLOPT_POSTFIELDS => json_encode($user),
    ]);
    
  7. 分别使用 curl_exec()curl_close() 函数执行初始化的 cURL 会话和关闭 cURL 会话并释放所有资源。但是,在 PHP 8.0.0 及更高版本中,curl_close() 函数无效。

    $result = curl_exec($resource); // creates and returns result
    curl_close($resource);
    echo $result;
    

代码的输出将产生下面的 PHP 多维数组。


[
  {
    "id": 1,
    "name": "Leanne Graham",
    "username": "Bret",
    "email": "Sincere@april.biz",
    "address": {
      "street": "Kulas Light",
      "suite": "Apt. 556",
      "city": "Gwenborough",
      "zipcode": "92998-3874",
      "geo": {
        "lat": "-37.3159",
        "lng": "81.1496"
      }
    },
    "phone": "1-770-736-8031 x56442",
    "website": "hildegard.org",
    "company": {
      "name": "Romaguera-Crona",
      "catchPhrase": "Multi-layered client-server neural-net",
      "bs": "harness real-time e-markets"
    }
  },
  {
    "id": 2,
    "name": "Ervin Howell",
    "username": "Antonette",
    "email": "Shanna@melissa.tv",
    "address": {
      "street": "Victor Plains",
      "suite": "Suite 879",
      "city": "Wisokyburgh",
      "zipcode": "90566-7771",
      "geo": {
        "lat": "-43.9509",
        "lng": "-34.4618"
      }
    },
    "phone": "010-692-6593 x09125",
    "website": "anastasia.net",
    "company": {
      "name": "Deckow-Crist",
      "catchPhrase": "Proactive didactic contingency",
      "bs": "synergize Scalable supply-chains"
    }
  },
  {
    "id": 3,
    "name": "Clementine Bauch",
    "username": "Samantha",
    "email": "Nathan@yesenia.net",
    "address": {
      "street": "Douglas Extension",
      "suite": "Suite 847",
      "city": "McKenziehaven",
      "zipcode": "59590-4157",
      "geo": {
        "lat": "-68.6102",
        "lng": "-47.0653"
      }
    },
    "phone": "1-463-123-4447",
    "website": "ramiro.info",
    "company": {
      "name": "Romaguera-Jacobson",
      "catchPhrase": "Face to face bifurcated interface",
      "bs": "e-enable strategic applications"
    }
  },
....
]

--结束END--

本文标题: 使用 PHP 的 cURL GET 请求

本文链接: https://lsjlt.com/news/569100.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用 PHP 的 cURL GET 请求
    在网络上,主要是 HTTPS,我们使用 GET 请求来获取特定的资源表示。为了获取数据,使用了 GET 方法。 特别是在 API 和 Web 抓取场景中,开发人员使用特定于语言的方法。我们使用 cU...
    99+
    2024-02-27
  • PHP用curl发起POST和GET的请求
    文章目录 前言二、curl实现逻辑2.1 发送GET请求2.2 发送POST请求2.3 其他选项 三、file_get_content实现POST总结 前言 本文已收录于PHP全栈系...
    99+
    2023-09-12
    php 开发语言 服务器 PHP curl
  • PHP怎么使用cURL实现Get和Post请求
    使用cURL库可以轻松地实现GET和POST请求。GET请求:```php// 创建一个cURL资源$curl = curl_ini...
    99+
    2023-08-16
    PHP
  • PHP如何使用cURL实现Get和Post请求
    使用cURL库可以很方便地实现PHP中的GET和POST请求。GET请求:```php// 创建cURL资源$ch = curl_i...
    99+
    2023-08-15
    PHP
  • php利用curl发送post、get、del、put、patch请求
    post请求 // 创建一个新cURL资源$ch = curl_init();// 设置URL和相应的选项curl_setopt($ch, CURLOPT_URL, $url); //$url设置需要请求的urlcurl_setopt($c...
    99+
    2023-09-02
    php
  • php curl如何发送get或者post请求
    这篇文章主要为大家展示了“php curl如何发送get或者post请求”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php curl如何发送get或者post...
    99+
    2024-04-02
  • PHP使用curl库发送HTTP请求
    在Web开发中,发送HTTP请求是一项非常重要的任务。无论是通过API获取数据,还是与第三方服务进行通信,都需要使用HTTP请求来进行数据传输。在PHP中,可以使用curl库来发送HTTP请求,本文就来详细介绍curl库的使用方法。一、cu...
    99+
    2023-05-22
    Http请求 PHP Curl库
  • php curl发起get与post网络请求案例详解
    curl介绍 curl是一个开源的网络链接库,支持http, https, ftp, gopher, telnet, dict, file, and ldap 协议。之前均益介绍了p...
    99+
    2024-04-02
  • PHP中curl请求无响应
    php使用curl请求无反应问题 项目中碰到一次同代码不同电脑调试问题 一台电脑请求无任何响应 另一台正常响应 记录curl 最主要的是ssl去除验证+最后四项 ...
    99+
    2023-09-03
    php 开发语言 服务器 laravel json
  • 怎么用php禁止get请求
    PHP作为一种流行的服务器端编程语言,被广泛应用于构建Web应用程序。在使用PHP开发Web应用程序时,保证安全性是非常重要的。由于HTTP请求包括GET和POST两种类型,同时由于GET请求在URL中包含了客户端发送的请求参数,因此,可以...
    99+
    2023-05-14
    php get请求
  • 如何用php禁止get请求
    这篇文章主要介绍“如何用php禁止get请求”,在日常操作中,相信很多人在如何用php禁止get请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用php禁止get请求”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • Java 使用 HttpClient 发送 GET请求和 POST请求
    目录概述认证方式基础认证Auth用户名密码认证Bearer Token 认证配置超时生成 RequestConfig设置超时时间概述 日常工作中,我们经常会有发送 HTTP 网络请求...
    99+
    2024-04-02
  • 怎么使用cURL在PHP中POST请求增加参数
    今天小编给大家分享一下怎么使用cURL在PHP中POST请求增加参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,我们...
    99+
    2023-07-05
  • 如何像使用 go-curl 一样为 net/http GET 请求设置读取回调?
    php小编西瓜为您介绍如何为net/http GET请求设置读取回调,实现类似于go-curl的功能。在使用net/http库发起GET请求时,我们可以利用http.Client和ht...
    99+
    2024-02-11
  • 如何使用AutoMapper实现GET请求
    这篇文章主要讲解了“如何使用AutoMapper实现GET请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用AutoMapper实现GET请求”吧!需求需求很简单:实现GET请求获取...
    99+
    2023-06-22
  • 浅析PHP curl请求头域的含义与作用
    随着互联网技术的不断发展,各种网页应用程序和服务的接口与开发也变得越来越重要。而在这些应用程序和服务的开发过程中,经常需要用到PHP的curl函数进行HTTP请求,其中请求头域就是非常重要的概念之一。本文将介绍PHP curl请求头域的含义...
    99+
    2023-05-14
    php curl
  • 无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求
    php小编百草今天要为大家介绍一个常见的问题,那就是在使用Gin/GoLang框架时,如何将POST请求更改为GET请求。有时候我们可能需要将POST请求转换为GET请求,例如在某些特...
    99+
    2024-02-10
  • RestTemplate GET请求怎么用
    这篇文章给大家分享的是有关RestTemplate GET请求怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、 getForObject() 方法1.1.以String的方式接受请求结果数据在S...
    99+
    2023-06-29
  • 浅谈PHP模拟发送POST请求之curl基本使用
    目录cURL的基本使用步骤cURL的常用设置设置基本信息:设置POST数据信息:设置验证信息:设置强化信息:cURL批处理功能的基本使用cURL批处理时内存占用过多的问题cURL批处...
    99+
    2024-04-02
  • php curl请求头域是什么意思
    php curl请求头域是一种模拟客户端与服务器之间的请求和响应数据的PHP扩展库,主要应用于与HTTP/HTTPS/FTP等各种服务器之间的数据交互。本教程操作系统:Windows10系统、PHP8.1版、Dell G3电脑一、HTTP请...
    99+
    2023-05-14
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作