PHP:如何使用 HTTP-Basic 身份验证发出 GET 请求

2024-02-02

我想从此端点获取交易状态

https://api.sandbox.midtrans.com/v2/[orderid]/status

但它需要一个基本的身份验证,当我将其发布到 URL 上时,我得到的结果是:

{
    "status_code": "401",
    "status_message": "Operation is not allowed due to unauthorized payload.",
    "id": "e722750a-a400-4826-986c-ebe679e5fd94"
}

我有一个网站 ayokngaji.com 然后我想发送基本身份验证以获取我的网址的状态。例子:

ayokngaji.com/v2/[orderid]/status = (BASIC AUTH INCLUDED)

我该怎么做这个?

我还尝试使用邮递员,并使用基本身份验证它可以工作,并显示正确的结果

当我在网上搜索时 它向我展示了 CURL、BASIC AUTH,但我不明白这些教程,因为我的英语水平有限,而且对 php 的了解很少

SOLVED:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.sandbox.midtrans.com/v2/order-101c-1581491105/status",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Accept: application/json",
    "Content-Type: application/json",
    "Authorization: Basic U0ItTWlkLXNl"
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

您可以通过多种方式制作GET向 API 端点发出请求。但开发人员更喜欢使用以下方式发出请求CURL。我提供了一个代码片段,显示如何设置Authorization具有基本身份验证授权的标头,如何使用 php 对用户名和密码进行编码base64_encode()功能(基本Auth授权支持base64编码),以及如何准备标头以使用 php 的 CURL 库发出请求。

Oh! 不要忘记取代username, password and endpoint(api端点)与你的。

使用卷曲

<?php

$username = 'your-username';
$password = 'your-password'
$endpoint = 'your-api-endpoint';

$credentials = base64_encode("$username:$password");

$headers = [];
$headers[] = "Authorization: Basic {$credentials}";
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'Cache-Control: no-cache';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);

// Debug the result
var_dump($result); 

使用流上下文

<?php

// Create a stream
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Authorization: Basic " . base64_encode("$username:$password")
    )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$result = file_get_contents($endpoint, false, $context);

echo '<pre>';
print_r($result);

你可以参考这个phpdoc https://www.php.net/manual/en/function.file-get-contents了解如何使用流上下文file_get_contents().

希望这会对您有所帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:如何使用 HTTP-Basic 身份验证发出 GET 请求 的相关文章

  • 如何在php中使用preg添加html属性

    我正在寻找在 php 中编写一个脚本来扫描 html 文档并根据它找到的内容向元素添加新标记 更具体地说 我是扫描文档并为每个元素搜索CSS标记 float right left 如果找到它 它会添加align right left 基于它
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • PHP 和 NLP:嵌套括号(解析器输出)到数组?

    想要将带有嵌套括号的文本转换为嵌套数组 以下是 NLP 解析器的输出示例 TOP S NP PRP I VP VBP love NP NP DT a JJ big NN bed PP IN of NP NNS roses 原文 我喜欢一大床
  • jquery上传完成后重定向到新页面

    我正在尝试让这个 jquery 工具与我的网站一起使用以进行文件上传 https github com blueimp jQuery File Upload https github com blueimp jQuery File Uplo
  • 端点按资源 swagger 注释分组?

    我正在使用 Spring 进行 REST API 开发 我有一些 API 其中有很多端点 当我打开 swagger ui 时 它看起来很拥挤 我刚刚读过this https swagger io docs specification gro
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP 基本身份验证 file_get_contents() [重复]

    这个问题在这里已经有答案了 我需要从网站解析一些 XML 数据 XML 数据是原始格式 但在我需要进行身份验证之前 基于基本网络服务器的身份验证 使用用户名和密码 I tried homepage file get contents htt
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • Doctrine 1 和 Symfony 1 的多个主键?

    我已经知道在 Symfony 1 和 Doctrine 1 中不可能使用多个主键 但是你们知道有什么好的解决方法吗 除了多对多关系之外 原则 1 不适用于多列上的主键 但如果你想使用多对多关系 请像这样使用 BlogPost columns
  • Yii2 中 init() 和 __construct() 方法有什么区别

    init 方法 public function init construct method public function construct 那么 它们之间有什么区别 应该使用哪一个呢 init 是从以下对象扩展的任何对象的方法yii b
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http
  • 如何解决 Laravel 8 UI 分页问题?

    我在尝试最近发布的 laravel 8 时遇到了问题 我试图找出变化是什么以及它是如何工作的 当我这样做时 我遇到了分页 laravel 8 UI 变得混乱的问题 不知何故它发生了 有人可以帮助我吗 或者经历过同样的事情 像这样我在 lar
  • 注册期间现有电子邮件的 422 或 409 状态代码

    我正在构建 RESTful API 遇到了一种情况 在用户注册期间 如果电子邮件已存在 则在422 and 409哪个http响应代码有意义 我浏览过类似的one https stackoverflow com questions 9269
  • HTML 代码中的 PHP [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我用 HTML 代码编写了 PHP div div 但这出现在输出页面中 else print 我怎样才能让PHP执行 你的文件有一个 p
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28
  • 如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?

    有谁知道如何使用配置文件 ebextensions 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展 我使用的是 64 位 Amazon Linux 2017 03 v2 4 0 运行 PHP 7 0 1

随机推荐

  • 如何命名 iPad 3 的图形文件

    据我了解 在 iOS 中 我们可以将用于视网膜显示的文件命名为 电子邮件受保护 cdn cgi l email protection 如何为 iPad 3 命名文件 ipad png iPad iPad 2 电子邮件受保护 cdn cgi
  • 为什么 c# JavaScriptSerializer.Serialize 返回空方括号

    为什么下面的代码应该返回 id 1999 title hithere 却返回 JavaScriptSerializer serializer new JavaScriptSerializer StringBuilder sbJsonResu
  • Spring Data JPA findBy 集合[重复]

    这个问题在这里已经有答案了 我正在使用 JPA 使用 Java 开发路线规划系统 我需要创建一个 findBy 方法来通过其包含的城市列表查找路线 以下是课程 Entity public class Route ManyToMany cas
  • 自定义从 UITextView 打开的自动 MFMailComposeViewController

    我有一个简单的UITextView其中有一个电子邮件链接 文本视图是可选择的并检测链接 这样 您可以单击电子邮件 它会以模式方式打开MFMailComposeViewController视图控制器 但是 我在应用程序启动时做了一些自定义 U
  • 当应用程序在 Android 10 中被杀死时,WorkManager 无法工作,尽管在版本 9 之前工作正常(Pie)

    当应用程序被 Android 10 中的后台任务杀死时 我没有通过 Workmanager 收到通知 我发现了这个问题 它适用于所有 Android 版本 直到 Andorid 9 为了测试这一点 我在 9 和 10 版本上同时运行该应用程
  • 使用 DTE.ExecuteCommand 响应对话框

    有没有办法说Yes or No or OK使用以下命令打开 Visual Studio 2015 时出现对话框 消息框EnvDTE 我尝试在盒子打开时调试我的应用程序 但我不知道要寻找什么 我也尝试过在内部搜索这个命令列表 https gi
  • 关闭Excel应用程序的正确方法

    我正在编写一个应用程序 它使用以下代码访问 Excel 文件 RBTApplication new Excel Application RBTWorkbooks RBTApplication Workbooks RBTWorkbook RB
  • C++中如何判断一个指针指向什么类型的对象?

    假设我有class SuperClass public int a and class SubClass SuperClass public int b 我获取了一个指向子类实例的指针SubClass subPointer并将该指针寻址到超
  • 如何检查客户端网络/防火墙上的端口是否打开?

    最后通过 jQuery AJAX 和 JSONP 的 超时 属性解决了这个问题 看我自己的回答 请参阅更新的部分 我也尝试过使用小程序 如果您能提供小程序实现的解决方案 我们将毫不犹豫地接受您的答案 我正在使用基于 Java 的 Web 应
  • 如何在 React Native 中添加按钮网格样式?

    我最近将手放在了 React Native 上 并尝试将按钮动态添加到视图中 我想要一个像这样的结构 在引导程序中我会添加一个带有 col md 4 的类 A A A A A A A A A A A A 我已经可以添加按钮 但它们总是出现在
  • .NET / C# 的线性编程库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要求解欠定线性方程组和约束 然后找到最小化成本函数的特定解决方案 这需要通过在 NET 和 Mon
  • 如何在谷歌地图目标c上旋转自定义标记图像

    目前我正在开发一个像 Uber iOS 应用程序这样的应用程序 我已经集成了 Google Maps SDK 并且还显示了用户当前位置的自定义图像 目前我正在从服务器获取一些驾驶员当前位置详细信息 例如 100 个驾驶员 我保存在一个NSA
  • 我不清楚应用函子评估

    我目前正在阅读 Learn a Haskell for Great Good 并且我偶然发现了对某个代码块的评估的解释 我已经阅读了几次解释 并且开始怀疑作者是否理解这段代码的作用 ghci gt lt gt 3 lt gt 100 5 5
  • Android SearchView 过滤器 ListView

    我已在 SherlockAction Bar 中的 SearchView 中实现了搜索过滤器 当我输入 m 时 我想在下面的列表视图中显示过滤结果 该结果仅以 M 开头 依此类推 但现在它显示随机结果 public boolean onQu
  • matplotlib 需要 pyparsing

    我正在尝试使用 matplotlib 绘制一些数据 导入库时 出现错误 ImportError matplotlib requires pyparsing 我使用安装了 pyparsingeasy install pyparsing 但错误
  • 从 Access 数据库获取数据的正确方法

    我对如何从访问数据库获取数据有点困惑 首先将其收集在列表中然后从列表中获取这些数据是否正确 或者直接将其获取到数据库中是否可以 我的代码工作得很好 但我想知道是否有更好的方法来做到这一点 private void button3 Click
  • 为什么我不应该使用 Process.GetCurrentProcess().Kill() 退出我的 WinForm 应用程序?

    现在 当用户想要退出我的应用程序时 我必须执行一些操作 即与服务器断开连接 保存用户数据 然后执行以下操作 使用布尔值退出所有主循环 中止仍在运行的线程 通常是我的服务器轮询线程 请调用Application Exit 这需要几秒钟才能退出
  • 点击显示更多 - 也许是 JS?

    我不确定使用什么语言或如何执行此操作 但我希望在页面上有一个单词 当单击时 它会在下面显示更多内容 再按一下 那东西又会隐藏起来吗 有任何想法吗 基本上 您需要操纵display要隐藏 显示的元素的 CSS 属性 span Show spa
  • 如何使用Spring响应式增量进度更新来逐一处理每个产品?

    我需要有关 Spring Reactive 的帮助 其中休息调用会发布 Json 对象列表 并且 Spring Boot 服务器应一一发送处理事件 让我用一个例子来简单解释一下 假设前端 UI 中有 20 个产品 用户选择所有要处理的产品
  • PHP:如何使用 HTTP-Basic 身份验证发出 GET 请求

    我想从此端点获取交易状态 https api sandbox midtrans com v2 orderid status 但它需要一个基本的身份验证 当我将其发布到 URL 上时 我得到的结果是 status code 401 statu