首页 文章

PHP未按预期获得Guzzle响应

提问于
浏览
1

我在我的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": "..."
        }
    }
}

所以我 Build 了这样的请求:

$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的正确方法是什么?

1 回答

  • 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());
    }
    

相关问题