首页 > 编程语言 >PHP 优雅的发起 http 请求

PHP 优雅的发起 http 请求

时间:2023-07-19 14:13:51浏览次数:41  
标签:echo http url 优雅 响应 PHP data response

<?php
function sendPostRequest($url, $data) {
    // 初始化cURL
    $curl = curl_init();

    // 设置cURL选项
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    // 发起POST请求并获取响应
    $response = curl_exec($curl);

    // 检查请求是否成功
    if ($response === false) {
        // 处理请求失败的情况
        $error = curl_error($curl);
        curl_close($curl);
        return "Error: " . $error;
    }

    // 关闭cURL资源
    curl_close($curl);

    // 返回响应
    return $response;
}

// 示例用法
$url = 'http://example.com/api';
$data = array(
    'param1' => 'value1',
    'param2' => 'value2'
);
$response = sendPostRequest($url, $data);

// 打印响应
echo $response;
?>
<?php
function sendPostRequest($url, $data) {
    // 构建HTTP头信息
    $options = array(
        'http' => array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($data)
        )
    );

    // 创建上下文流
    $context = stream_context_create($options);

    // 发起POST请求并获取响应
    $response = file_get_contents($url, false, $context);

    // 返回响应
    return $response;
}

// 示例用法
$url = 'http://example.com/api';
$data = array(
    'param1' => 'value1',
    'param2' => 'value2'
);
$response = sendPostRequest($url, $data);

// 打印响应
echo $response;
?>
<?php
function sendGetRequest($url, $params) {
  // 将参数附加到URL
  $url = $url . '?' . http_build_query($params);

  // 发起GET请求并获取响应
  $response = file_get_contents($url);

  // 返回响应
  return $response;
}

// 示例用法
$url = 'http://example.com/api';
$params = array(
  'param1' => 'value1',
  'param2' => 'value2'
);
$response = sendGetRequest($url, $params);

// 打印响应
echo $response;
?>

 

标签:echo,http,url,优雅,响应,PHP,data,response
From: https://www.cnblogs.com/xiondun/p/17565408.html

相关文章

  • docker-compose 私有仓库搭建 支持https
    DockerCompose私有仓库搭建支持HTTPSDocker是一个非常流行的容器化平台,允许用户将应用程序和其依赖项打包为一个独立的轻量级容器,并且可以在任何地方运行。DockerCompose是Docker官方提供的一个工具,用于定义和运行多个容器的应用程序。在某些情况下,我们可能需要在本地搭......
  • Android 7在Burpsuite中无法抓取HTTPS包
    链接(URL):https://www.hygrey.com/burpsuite-can-not-capture-https-packet-in-android7.html来源(Source):渡缘人  渡缘人大佬的教程详细的列出来Android7配置bp抓包的流程,也可以一同参考下面的链接https://blog.chenjia.me/articles/171029-223953.html 说说遇到的问题......
  • JavaScript 的优雅编程技巧:Singleton Pattern
    JavaScript的优雅编程技巧:SingletonPattern定义单例模式:保证一个类仅有一个实例,并提供一个访问的全局访问点。特点仅有一个实例对象全局都可访问该实例主动实例化延迟实例化类似单例模式的使用实践jQuery,lodash,moment....电商中的购物车(因为一个用户只有一......
  • 怎样优雅地增删查改(八):按用户关系查询
    @目录原理实现正向用户关系反向用户关系使用测试用户关系(Relation)是描述业务系统中人员与人员之间的关系,如:签约、关注,或者朋友关系。之前我们在扩展身份管理模块的时候,已经实现了用户关系管理,可以查看本系列博文之前的内容。怎样优雅地增删查改(二):扩展身份管理模块原理查询依据......
  • bWAPP靶场搭建(phpstudy)
    我目前只打算在windows上使用该靶场,所以只看了windows中phpstudy搭建的教程,如果使用linux的docker,那更方便,phpstudy搭建bWAPP靶场的具体过程可以参考以下两位大佬:无mysql冲突的情况:https://www.cnblogs.com/zzjdbk/p/12981726.html有mysql冲突的情况:https://blog.csdn.net/we......
  • 【测试联调】如何在前后端测试联调时优雅的构造异常场景
    背景当前的应用都使用了前后端分离的架构,前后端系统需要协同以实现各种功能。后端系统通常负责处理业务逻辑、数据存储和与其他服务的交互,而前端则负责用户界面和用户交互。而在前后端数据交互的过程中,各种异常和错误都有可能发生,确认异常发生时前后端系统的处理是否合理是测试验......
  • PHP-FPM的配置详解
    1php-fpm的配置详解  和LAMP不同的是,在LNMP架构中,php-fpm作为独立的一个服务存在,既然是独立服务,那么它必然有自己的配置文件。php-fpm的配置文件为/usr/local/php-fpm/etc/php-fpm.conf,它同样也支持include语句,类似于nginx.conf里面的include。  Nginx可以配置多个虚拟......
  • nginx 中根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接
    配置“$connection_upgrade”变量连接升级通常与WebSockets结合使用。在nginx中,我们可以根据$http_upgrade变量将HTTP连接升级为WebSocket连接。我们可以使用map块在nginx中定义连接和http升级之间的依赖关系:vimnginx.confmap$http_upgrade$connection_......
  • 零基础入门——从零开始学习PHP反序列化笔记(二)
    魔术方法魔术方法介绍__construct()触发时机:实例化对象之前构造函数,在实例化一个对象的时候,首先会去自动执行的一个方法;<?phpclassUser{public$username;publicfunction__construct($username){$this->username=$username;echo"......
  • PHP浮点数运算的问题
    $a=0.1;$b=0.7;$c=0.5;$d=0.9;if($a+$b==0.8){echo'==';}else{echo'!=';}//!=if($a+$c==0.6){echo'==';}else{echo'!=';}//==if($a+$d==1){echo'==';}else{echo'!=';......