2017-09-25 2 views
0

Ich brauche eine Verbindung zu einer API, um einen Gutschein zu erhalten. Bei API doc ich sehe:Laravel-Funktion gib mir einfach NULL zurück

POST /api/v1/vouchers/{voucherId}/claim 

{ 
    "Participant": { 
     "FirstName": "John", 
     "LastName": "James, 
     "Telephone": "08456 127 127", 
     "EmailAddress": "[email protected]", 
     "PostCode": "ASD 9HX", 
     "HouseNameNumber": "2", 
     "Street": "Bridge Road2", 
     "Locality": "LONDON", 
     "Town": "Aylesbury", 
     "County": "Bucks" 
    }, 
    "ExperienceDate": "2017-10-01T00:00:00" 
} 

Basierend auf diesen Artikel schreibe ich meine Funktion Laravel Framework:

public function testclaim() 
    { 

$client = new GuzzleHttp\Client; 
$headers = ['Content-Type' => 'application/json']; 
try { 
$res = $client->post('https://api.example.com/api/v1/vouchers/244775_2-H8SC/claim', [ 
    'headers'=>$headers, 
    'auth' => [ 
     'JAMES-JJ', 'ajhsdajsdhaj32423' 
    ], 
    'json' => [ 
    'Participant' => [ 
     "FirstName"=> "asdasd", 
     "LastName"=> "asdasd", 
     "Telephone"=> "08456 127 127", 
     "EmailAddress"=> "[email protected]", 
     "PostCode"=> "HP18 9HX", 
     "HouseNameNumber"=> "1", 
     "Street"=> "Bridge Road", 
     "Locality"=> "Ickford", 
     "Town"=> "Aylesbury", 
     "County"=> "Bucks" 
    ], 
    'ExperienceDate' => '2017-11-01T00:00:00' 
] 
      ]); 
$res = json_decode($res->getBody()->getContents(), true); 

    return response()->json(['data' => $res]); 

//dd($res); 
} 
catch (GuzzleHttp\Exception\ClientException $e) { 
     $response = $e->getResponse(); 
     $result = json_decode($response->getBody()->getContents()); 

    return response()->json(['data' => $result]); 

    } 

    } 

Nun, wenn ich diese Funktion zu starten bekomme ich nur:

{"data":null} 

irgend jemand sehen Was ist falsch in meinem Code? Wie löst man dieses Problem?

Ich versuche auch ohne Header, um eine Anfrage zu senden, aber wieder bekomme ich die gleiche Antwort von API.

+1

Also ein Debuggen. Weißt du was es ist? Was ist der Wert von $ res? Vor 'json_decode', nach' json_decode'. –

+0

Was ist die Ausgabe von '$ res'? – ajtrichards

+0

DO ein var_dump() oder dd() von res, um zu sehen, ob die API etwas zurückgegeben hat, wenn es vielleicht nur die falschen Sachen zurückgibt. – Peter

Antwort

0

Sie benötigen getContents() nicht, wenn Sie den Body in ein Array konvertieren möchten.

Verwandte Themen