如何解决无法获得我根据客户端发出的请求使用 GuzzleHttp\Psr7\Response 发送的响应
我正在使用 GuzzleHttp\Client 将客户端的请求发送到另一个用作服务器的端口上的页面
use SL\Controllers\LoginController;
use SL\FileHelper;
use GuzzleHttp\Client;
require_once dirname(__DIR__) . DIRECTORY_SEParaTOR . "config/config.PHP";
$client = new Client();
$response = $client->request('get','http://myip:75/src/LoginVerification.PHP?username=asd&password=asd');
请求在页面上提供
require_once(__DIR__ . '/../config.PHP');
use Moodle\Manager\UserManager;
use GuzzleHttp\Psr7\Response;
$userManager = new UserManager();
$user;
$username = $_GET["username"];
$password = $_GET["password"];
$isLogin = $userManager->verifyLogin($username,$password,$user);
if($isLogin)
$body = "yahoo";
else
$body = "oooops";
$status = 201;
$headers = ['Content-Type' => 'application/json'];
$protocol = '1.1';
$response = new Response($status,$headers,$body,$protocol);
return $response;
请忽略在 GET 中传递的密码,因为我在这里主要关注的是发送请求和获取响应。
在服务器上提供请求后,我做出的响应如下
phrases:array(58)
reasonPhrase:"Created"
statusCode:201
headers:array(1)
headerNames:array(1)
protocol:"1.1.1"
stream:GuzzleHttp\Psr7\Stream
stream:resource id='10' type='stream'
size:null
seekable:true
readable:true
writable:true
uri:"PHP://temp"
但是收到的是这个
headerNames:array(9)
headers:array(9)
statusCode:200
reasonPhrase:"OK"
phrases:array(58)
protocol:"1.1"
headerNames:array(9)
headers:array(9)
phrases:array(58)
reasonPhrase:"OK"
statusCode:200
stream:resource id='4' type='stream'
size:null
seekable:true
readable:true
writable:true
uri:"PHP://temp"
这与我创建的响应不同。
解决方法
由于我没有使用 Laravel,因此可以通过创建一个简单的 stdClass 对象并通过执行 json_encode 回显该对象来解决无法获得我想要的响应的问题,然后您可以在响应正文中获取数据。>
$response = new stdClass();
$isLogin = $userManager->verifyLogin($username,$password,$user);
if($isLogin)
$response->body = "yahoo";
else
$response->body = "oooops";
$response->status = 201;
$response->headers = ['Content-Type' => 'application/json'];
$response->protocol = '1.1';
echo json_encode($response);
要在客户端获取它,您只需执行此操作
$data = $response->getBody()->gtContents();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。