我如何使用Guzzle进行HTTP基本认证?
我想使用guzzle进行基本的访问身份验证,我对编程非常新.我不知道该怎么办.我尝试使用卷发来做到这一点,但我的环境需要使用guzzle. 解决方案 如果您使用的是 guzzle 5.0或新,$client = new GuzzleHttp\Client(); $response = $client->get('http://www.server.com/endpoint', [ 'auth' => [ 'username', 'password' ] ]); 请注意,语法是不同的如果您使用 guzzle 3.0或更早.构造函数不同,您还需要在请求上明确使用send方法以获取响应: $client = new Guzzle\Http\Client(); $request = $client->get('http://www.server.com/endpoint'); $request->setAuth('username', 'password'); $respon
10 2024-03-29
编程技术问答社区
Azure DevOps API-无效的补丁文件
我试图使用PHP,Guzzle和Laravel连接到Azure Dev Ops API.我能够成功连接并获得以下代码的工作列表: Route::get('/getworkitem', function() { $response = Http::withBasicAuth('Username', 'PAT') ->get('https://dev.azure.com/{Organisation}/{Project}/_apis/wit/workitems/32?fields=System.WorkItemType,System.AssignedTo&$expand=Links&api-version=5.1'); return $response; }); 我正在尝试使用Laravel HTTP客户端进行发布请求,以创建一个新的工作项,其中包括以下代码: Route::get('/add', function() { $requir
10 2024-03-25
编程技术问答社区
微软图形 无法读取JSON请求的有效载荷
我正在尝试使用PHP中的Microsoft Graph创建订阅,但是我目前无法看到问题. 代码在以下内容中打破: protected $http_subscribe = "https://graph.microsoft.com/v1.0/subscriptions"; public function getSubscriptions() { if(empty($this->token)) { dd('no token supplied'); //some debugging } $date = $this->endTimeDate->format('Y-m-d'); //This is Carbon date $time = $this->endTimeDate->format('H:i:s.u'); $response = $this->client->request('POST', $this->http_s
14 2024-03-24
编程技术问答社区
当试图访问微软图表时,"无法获得本地发行者证书"。
我想配置我的symfony4应用程序,以使用 msgraph-sdksdk -php 库. 我的第一个经历是此代码: $guzzle = new \GuzzleHttp\Client(); $url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0'; $token = json_decode($guzzle->post($url, [ 'form_params' => [ 'client_id' => $clientId, 'client_secret' => $clientSecret, 'resource' => 'https://graph.microsoft.com/', 'grant_type' => 'clien
12 2024-03-24
编程技术问答社区
guzzle on azure to get all virtual hosts
我有邮递员的工作代码,我可以得到所有虚拟主机, 但是,当我用guzzle在PHP上做时,这给了我麻烦. 代码的第一部分我得到了我获得携带者令牌的位置,但是要获得虚拟主机列表,它给了我错误. 这是我的代码 $client = new \GuzzleHttp\Client(); $res = $client->request( 'POST', "https://login.microsoftonline.com/".$tenant_id."/oauth2/token", Array( 'form_params' => Array( 'grant_type' => 'client_credentials', 'client_id' => $client_id, 'client_secret' =
14 2024-03-24
编程技术问答社区
Composer自动加载器没有加载GuzzleHttp\ClientInterface
我正在尝试使用 guzzle ,但是我得到了以下致命错误: 致命错误:'guzzlehttp \ clientinterface' /var/www/myapp/vendor/guzzlehttp/guzzle/src/functions.php on 13 我正在使用作曲家自动加载器自动加载: require 'vendor/autoload.php'; use Guzzle\Http\Client; $client = new Client(); $requests = Array( $client->createRequest('GET', 'ams1.myapp.com:8080/api/ffmpeg_make_snapshots.php'), $client->createRequest('GET', 'ams2.myapp.com:8080/api/ffmpeg_make_snapshots.php'), $client->cr
14 2024-03-21
编程技术问答社区
我怎样才能在laravel中要求 composer autoloader?
我想安装guzzle https://github.com/guzzle/guzzle/guzzle/guzzle/guzzle 我阅读了参考文献,但我很困惑本节: 根据该教程,要求需要作曲家自动加载器.因此似乎需要添加require 'vendor/autoload.php'; 我在哪里添加脚本? 我使用Laravel 5.6 解决方案 如果要在Laravel中安装Guzzle,则无需做任何事情. 上面的示例实际上是针对核心PHP的. Laravel将自动为您做. 只需在您的终端中运行composer require guzzlehttp/guzzle即可. (当然,在您的Laravel项目实际所在的目录中.) 并在文件顶部添加use GuzzleHttp\Client;您将从. 调用guzzle.
14 2024-03-21
编程技术问答社区
Guzzle 5.3 | 获取异步请求的请求时间
我是定时同步请求,如下所示: guzzle-6-get-get-request-total-total time ,但我也有一个带有两个或两个或多个请求的guzzle池,这些请求被异步地执行.我需要检索每个请求返回的持续时间. 我敢肯定,有一种简单的方法可以检索我刚刚忽略的信息. Infos处于基础卷发中,我只是不确定如何找到它们. 解决方案 事实证明,通过收听完整的事件,可以捕获整个TransferInfo: $client = new \GuzzleHttp\Client(); $guzzleRequests = $this->getGuzzleRequests(); foreach($guzzleRequests as $myRequest) { $myRequest->getEmitter()->on( 'complete', function (Complet
22 2024-03-18
编程技术问答社区
Guzzle vs ReactPHP与AMPHP的并行请求
: 有什么区别 guzzlehttp reactphp amphp 它们是如何不同的,与之使用的典型用例? 解决方案 这些主要区别是Guzzle是HTTP客户端,而AMP和ReactPHP是通用异步/事件循环库.这两者都根据他们提供的核心事件循环提供HTTP客户端.那是 amphp/artax and reactphp/http-client . 现在,这些和guzzle之间的区别在于,这些可以同时执行不是HTTP请求的其他事情.也就是说,因为用户对事件循环具有完全控制,并且可以注册自己的I/O观察者和计时器,而Guzzle使用的事件循环则隐藏在用户内部卷发中. 如果您只想提出一些并发的HTTP请求,则该决定主要归结为您喜欢的API,并且可能会考虑性能.如果您想同时执行其他I/O相关的事情,请使用AMP或ReactPHP.如果您想流式传输身体,我建议也反对使用guzzle. 其他解决方案 嘿,hear reactphp核心团队成员. ReactP
16 2024-03-18
编程技术问答社区
使用guzzle发送异步请求,无需等待响应
我有以下两个功能 public function myEndpoint(){ $this->logger->debug('Started'); $this->guzzle->requestAsync('post', 'http://myurl.com/doNotWait')->wait(); $this->logger->debug("I shouldn't wait"); } public function doNotWait(){ sleep(10); $this->logger->debug("You shouldn't wait"); } 现在我需要在日志中看到的是: Started I shouldn't wait You shouldn't wait 但是我看到的 Started You shouldn't wait I shouldn't wait 我也尝试使用以下方式: 方法#1 publ
6 2024-03-18
编程技术问答社区
使用Guzzle 6创建异步json请求池来发送API端点的正确方法是什么?
我的目标是使用 guzzle 6 放置JSON数据的异步请求池.然后监视每个$承诺成功/失败. 有关与我的池代码示例进行比较,以下单个请求转换为$ client-> request()将第3个参数转换为编码的JSON,然后添加content-type:application/json.** $client = new Client([ 'base_uri' => BASE_URL . 'test/async/', // Base URI is used with relative requests 'timeout' => 0, // 0 no timeout for operations and watching Promises ]); $response = $client->request('PUT', 'cool', ['json' => ['foo' => 'bar']]); 在接收API端点上,我可以通过以下内容从上面的单个请求中阅读JS
8 2024-03-18
编程技术问答社区
如何使用Guzzle的分页功能
我使用Guzzle从服务器API URL检索API,我想获取数据并使用分页. 我尝试这些: $request_url="http://192.168.0.1:8081/APIServer/public/api/products"; $client = new \GuzzleHttp\Client(); $response = $client->request('GET', $request_url, [ 'headers' => ['Accept' => 'application/xml', 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'application/json' ], 't
10 2024-03-02
编程技术问答社区
如何从API调用中获得POD图像
我打电话给一家运输公司的API,以获取pod(交货证明)按此文档. 我希望看到图像,但是API响应是null. 这是我的代码: $host = "api.shiplogic.com"; $accessKey = 'AKIA55D5DNTBI4X24BCM'; //Sandbox credentials $secretKey = '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'; //Sandbox credentials $requestUrl = 'https://api.shiplogic.com'; $uri = '/shipments/pod/images?'; $httpRequestMethod = 'GET'; $data = 'tracking_reference='; $refnr = 'FQJNF'; //created for testing require 'AWS/aws-autoloader.php';
12 2024-03-01
编程技术问答社区
如何在laravel中通过传递参数获得内容类型为application/x-www-form-urlencoded的响应?
我已经使用API​​在laravel https://sso/{custom_path}/令牌中使用单个符号,就像使用JWT创建的API一样. 在Web应用程序中,使用HTTP客户端guzzle传递访问令牌和内容类型为API调用. 使用内容类型应用程序/X-WWW-Form-urlCoded用form_params中的参数编码. 但是作为回应,我缺少grant_type.当我传递form_parms数组中的Grant_Type时.还有其他方法可以解决此问题.任何有价值的回应都将被考虑. 代码: $uri = $this->userTokenAuthencticateUrl(); $token = session('token')->access_token; $params['header'] = [ "Content-Type: application/x-www-form-urlencoded",
6 2024-03-01
编程技术问答社区
Sage One API-unsupported_grant_type
我试图通过遵循,试图获得Sage One API的访问令牌docs 使用 错误 Client error: `POST https://api.sageone.com/oauth2/token` resulted in a `400 Bad Request` response: {"error":"unsupported_grant_type"} 有问题的代码 $client = new Client([ 'base_uri'=>'https://api.sageone.com', 'headers' => ['content_type' => 'application/x-www-form-urlencoded'] ]); $data = [ 'client_id' => getenv('SAGE_CLIENT'), 'client_secret' => getenv('SAGE_
10 2024-03-01
编程技术问答社区
使用Guzzle 6上传文件到API端点
我能够使用Postman上传到API端点. 我试图将其转换为从表单上传,使用laravel上载文件,然后使用guzzle 6. 将其上传到端点. postman中的外观屏幕截图(我故意遗漏了邮政网址) 下面是单击Postman中的"生成代码"链接时生成的文本: POST /api/file-submissions HTTP/1.1 Host: strippedhostname.com Authorization: Basic 340r9iu34ontoeioir Cache-Control: no-cache Postman-Token: 6e0c3123-c07c-ce54-8ba1-0a1a402b53f1 Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW ----WebKitFormBoundary7MA4YWxkTrZu0gW Content-D
22 2024-03-01
编程技术问答社区
从Guzzle中抓取异常情况
我正在尝试从我正在开发的API上运行的一组测试中捕获异常,并且我正在使用Guzzle来消耗API方法.我已经将测试包裹在一个尝试/捕获块中,但仍在抛出未手持的异常错误.如他们的文档中所述,添加事件听众似乎无能为力.我需要能够检索具有500、401、400的HTTP代码的响应,实际上任何不是200的响应. 当前代码示例 foreach($tests as $test){ $client = new Client($api_url); $client->getEventDispatcher()->addListener('request.error', function(Event $event) { if ($event['response']->getStatusCode() == 401) { $newResponse = new Response($event['r
10 2024-03-01
编程技术问答社区
当应用程序通过GuzzleHttp相互调用时,Laravel的环境变量会在它们之间泄漏
我在本地计算机上有两个Laravel 5.2应用程序(让我们称为A和B),两者都在我的本地Apache 2.4开发服务器上配置在两个不同的虚拟台面. 有时两个应用程序都通过guzzlehttp互相呼叫. 在某一时刻,我想使用加密,然后开始从Laravel的Encrypter中获得" Mac IS IS IS IS IS IS IS IS IS IS". 在调查问题时,我发现当App A Call App B时,App B突然从App A中获取加密密钥(app.key)!这会导致加密破坏,因为使用应用程序B加密密钥加密的应用B上的值. 在调试时,我发现dotenv库有一些逻辑,可以保留现有变量,如果设置了这些变量.我发现$ _env和$ _server都没有泄漏变量,但是getenv()有它们! 我有点困惑,因为php putenv说: 环境变量仅在当前请求的持续时间内存在. 似乎在当前请求中我通过guzzlehttp启动另一个请求,dotenv在
8 2024-02-27
编程技术问答社区
亚马逊AWS PHP SDK与Guzzle's MultiCurl?
我需要使用Amazon的AWS SDK进行一些相当重的查询. 最有效的方法是使用 php的Multicurl .看来 Guzzle已经具有功能用于内置的多曲子. 使用AWS SDK提供的标准方法会自动使用多弹药,还是我必须直接指定其用法?例如.致电$sns->Publish() 30次. 谢谢! 解决方案 并行请求在SDK中与普通guzzle完全相同,并且确实利用了多额度.例如,您可以做这样的事情: $message = 'Hello, world!'; $publishCommands = array(); foreach ($topicArns as $topicArn) { $publishCommands[] = $sns->getCommand('Publish', array( 'TopicArn' => $topicArn, 'Message' => $message, )); } try {
22 2024-01-26
编程技术问答社区
Prestashop 1.6,冲突:2个不同的模块需要相同的类,不同的版本
在我的Prestashop项目中,我有几个模块.在其中一个(让我们称之为" AWS")中,我使用Composer(在PhpStorm中)安装了 aws sdk ,如说明另一方面,还有另一个模块(让我们称其为" orangeconnect" )与作曲家一样,它具有较早版本的" guzzlehttp". 当我在第一个模块中的PHP脚本内使用AWS SDK时,问题就在于.发生的事情是它试图称呼URI作曲家类,并崩溃.实际上,由于一个类" Uriresolver"的不存在.问题是,如果我删除" OrangeConnect",则AWS SDK正确连接,这意味着由于" OrangeConnect"模块," AWS"中的URI类不正确.但是,我迫切需要支持项目中的" orangeconnect". 总而言之, 在PRESTASHOP内部的PHP中的这种冲突 中,并允许每个模块包含guzzlehttp 的相应有效版本,而没有任何冲突 ? 谢谢. 解决方案 如果orangeCon
12 2024-01-26
编程技术问答社区