Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel控制器/视图中测试API调用_Php_Laravel_Api - Fatal编程技术网

Php 在laravel控制器/视图中测试API调用

Php 在laravel控制器/视图中测试API调用,php,laravel,api,Php,Laravel,Api,我正在测试一个API调用,我在Postman和其他API上构建的接口中使用它,但我正在尝试在我的laravel站点中实际获取我的返回值 应该足够简单,我制作了一个非常简单的服务文件,它使用guzzle访问API url,我在其中有一个函数,用于使用测试电子邮件、密码和客户端ID登录(所有这些都在API接口中工作,如Postman) 我在authController中调用类和函数,然后在视图中返回函数调用,然后在视图中转储该调用 但是,目前我的页面转储中的值为空 我的服务文件中有没有遗漏什么。我认

我正在测试一个API调用,我在Postman和其他API上构建的接口中使用它,但我正在尝试在我的laravel站点中实际获取我的返回值

应该足够简单,我制作了一个非常简单的服务文件,它使用guzzle访问API url,我在其中有一个函数,用于使用测试电子邮件、密码和客户端ID登录(所有这些都在API接口中工作,如Postman)

我在authController中调用类和函数,然后在视图中返回函数调用,然后在视图中转储该调用

但是,目前我的页面转储中的值为空

我的服务文件中有没有遗漏什么。我认为这里不应该有任何东西通过,但也许我忽略了更明显的东西

Authorize.php

<?php
namespace App\Services\restAPI;

use Illuminate\Support\Facades\Auth;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ServerException;


use Session;
use Exception;

class AuthService
{

    protected $baseurl;
    protected $guzzleClient;

    public function  __construct() {
        $this->baseurl = config('http://ip.address');
        $this->baseurl = rtrim($this->baseurl, '/') . '/';  // ensure trailing slash

        $this->guzzleClient = new \GuzzleHttp\Client(
            ['verify'   => config('app.ca_pem_file'),
             'headers'  => [
                    'Event-ID' => ACCESS_EVENT_ID
                ],
             'base_uri' => $this->baseurl
            ]
        );
    }

    public function loginGetToken(){
        $password = "password";
        $email = "test@thisAPI.com";
        $client_id = "0";

        $payload = (object)[
            'password'=>(string)$password,
            'email'=>(string)$email
        ];

        $retval = $this->post('login/?client_id='.$client_id,$payload);

        return $retval;
    }

    private function post($endpoint,$payload){

        $result = $this->guzzleClient->request('POST', $endpoint, ['json'=>$payload]);
        $body = $result->getBody();
        return  json_decode($body);
    }
}
login.blade.php

<?php

    dd($login);

?>

由于您正在重定向,因此数据不能作为变量直接在视图中使用。但它应该在会话中,因此您可以在自己的视图中尝试:

dd(session('login'));

Hmm,这是有道理的,但似乎仍然表明有没有更好的方法来尝试返回和转储,只是为了测试它是否返回我在调用中期望的结果?这是一个POST函数,但我需要查看其响应的主体。您可以在点击视图之前在控制器中进行转储。因此,我认为这让我有所收获,但在我的页面错误中,现在它只显示了带有
/login/?client_id=0
的URL,但我看不到负载是否已传递?不确定。您可以在Authorize.php
post()
方法中
dd($result)
查看您得到了什么。
dd(session('login'));