Tôi đang cố gắng viết một trình bao bọc xung quanh một api mà công ty tôi đang phát triển. Thật yên tĩnh và khi sử dụng Người đưa thư, tôi có thể gửi yêu cầu bài đăng đến điểm cuối như http://subdomain.dev.myapi.com/api/v1/auth/
với tên người dùng và mật khẩu dưới dạng dữ liệu POST và tôi được trả lại mã thông báo. Tất cả đều hoạt động như mong đợi. Bây giờ, khi tôi thử và làm tương tự từ PHP, tôi nhận lại một GuzzleHttp\Psr7\Response
đối tượng, nhưng dường như không thể tìm thấy mã thông báo ở bất cứ đâu trong đó như tôi đã làm với yêu cầu của Người đưa thư.
Mã liên quan trông như:
$client = new Client(['base_uri' => 'http://companysub.dev.myapi.com/']);
$response = $client->post('api/v1/auth/', [
'form_params' => [
'username' => $user,
'password' => $password
]
]);
var_dump($response); //or $resonse->getBody(), etc...
Đầu ra của mã ở trên trông giống như (cảnh báo, tường văn bản đến):
object(guzzlehttp\psr7\response)#36 (6) {
["reasonphrase":"guzzlehttp\psr7\response":private]=>
string(2) "ok"
["statuscode":"guzzlehttp\psr7\response":private]=>
int(200)
["headers":"guzzlehttp\psr7\response":private]=>
array(9) {
["connection"]=>
array(1) {
[0]=>
string(10) "keep-alive"
}
["server"]=>
array(1) {
[0]=>
string(15) "gunicorn/19.3.0"
}
["date"]=>
array(1) {
[0]=>
string(29) "sat, 30 may 2015 17:22:41 gmt"
}
["transfer-encoding"]=>
array(1) {
[0]=>
string(7) "chunked"
}
["content-type"]=>
array(1) {
[0]=>
string(16) "application/json"
}
["allow"]=>
array(1) {
[0]=>
string(13) "post, options"
}
["x-frame-options"]=>
array(1) {
[0]=>
string(10) "sameorigin"
}
["vary"]=>
array(1) {
[0]=>
string(12) "cookie, host"
}
["via"]=>
array(1) {
[0]=>
string(9) "1.1 vegur"
}
}
["headerlines":"guzzlehttp\psr7\response":private]=>
array(9) {
["connection"]=>
array(1) {
[0]=>
string(10) "keep-alive"
}
["server"]=>
array(1) {
[0]=>
string(15) "gunicorn/19.3.0"
}
["date"]=>
array(1) {
[0]=>
string(29) "sat, 30 may 2015 17:22:41 gmt"
}
["transfer-encoding"]=>
array(1) {
[0]=>
string(7) "chunked"
}
["content-type"]=>
array(1) {
[0]=>
string(16) "application/json"
}
["allow"]=>
array(1) {
[0]=>
string(13) "post, options"
}
["x-frame-options"]=>
array(1) {
[0]=>
string(10) "sameorigin"
}
["vary"]=>
array(1) {
[0]=>
string(12) "cookie, host"
}
["via"]=>
array(1) {
[0]=>
string(9) "1.1 vegur"
}
}
["protocol":"guzzlehttp\psr7\response":private]=>
string(3) "1.1"
["stream":"guzzlehttp\psr7\response":private]=>
object(guzzlehttp\psr7\stream)#27 (7) {
["stream":"guzzlehttp\psr7\stream":private]=>
resource(40) of type (stream)
["size":"guzzlehttp\psr7\stream":private]=>
null
["seekable":"guzzlehttp\psr7\stream":private]=>
bool(true)
["readable":"guzzlehttp\psr7\stream":private]=>
bool(true)
["writable":"guzzlehttp\psr7\stream":private]=>
bool(true)
["uri":"guzzlehttp\psr7\stream":private]=>
string(10) "php://temp"
["custommetadata":"guzzlehttp\psr7\stream":private]=>
array(0) {
}
}
}
Đầu ra từ Postman là một cái gì đó như:
{
"data" : {
"token" "fasdfasf-asfasdfasdf-sfasfasf"
}
}
Rõ ràng tôi đang thiếu một cái gì đó về việc làm việc với các đối tượng phản hồi trong Guheads. Phản hồi Guheads chỉ ra 200 mã trạng thái theo yêu cầu, vì vậy tôi không chắc chắn chính xác những gì tôi cần làm để lấy dữ liệu được trả về.
$response->getBody()->getContents()
không làm việc