我在PHP项目中使用Guzzle for HTTP Requests / Responses。
我发送了以下请求:
GET https://graph.microsoft.com/v1.0/me/events('[some_id]')
,在邮递员中,返回的内容如下:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('...')/events/$entity",
"@odata.etag": "W/\"...==\"",
"id": "...",
"createdDateTime": "2018-06-14T08:03:44.5688916Z",
"lastModifiedDateTime": "2018-06-14T08:03:44.7407671Z",
"changeKey": "...==",
"categories": [],
"originalStartTimeZone": "UTC",
"originalEndTimeZone": "UTC",
"iCalUId": "...",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"hasAttachments": false,
"subject": "Created ?",
"bodyPreview": "",
"importance": "normal",
"sensitivity": "normal",
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "singleInstance",
"webLink": "https://outlook.office365.com/owa/?itemid=...%3D&exvsurl=1&path=/calendar/item",
"onlineMeetingUrl": null,
"recurrence": null,
"responseStatus": {
"response": "organizer",
"time": "0001-01-01T00:00:00Z"
},
"body": {
"contentType": "html",
"content": ""
},
"start": {
"dateTime": "2018-06-15T10:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2018-06-15T13:30:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"uniqueIdType": "unknown",
"address": {},
"coordinates": {}
},
"locations": [],
"attendees": [],
"organizer": {
"emailAddress": {
"name": "...",
"address": "..."
}
}
}
所以我建立了这样的请求:
$client = new Client();
$header = array(
"Authorization" => "Bearer ".$token
);
$url = "https://graph.microsoft.com/v1.0/me/events('" .$idEvent. "')";
$request = new Request("GET", $url, $header, "");
try {
$eventInfos = $client->send($request);
}
catch (GuzzleException $e) {
var_dump($e->getMessage());
}
但是当我var_dump($ eventInfos)时,我得到一个GuzzleHttp \ Psr7 \ Request对象。
获得我期待的JSON的正确方法是什么?
答案 0 :(得分:3)
您必须从响应中提取主体。试试这个,
$client = new Client();
$header = array(
"Authorization" => "Bearer ".$token
);
$url = "https://graph.microsoft.com/v1.0/me/events('" .$idEvent. "')";
$request = new Request("GET", $url, $header, "");
try {
$eventInfos = $client->send($request);
$response = (string)$eventInfos->getBody();
}
catch (GuzzleException $e) {
var_dump($e->getMessage());
}
答案 1 :(得分:0)
此外,您可以使用getContents()
来获取响应。
$request->getBody()->getContents()