2017-02-21 4 views
0

Ich führe einen Komponententest für meine API-Endpunkte in Slim durch. Dies ist, was ich verwenden, um Daten an den Endpunkt zu übergeben:Schlank - Übergeben der Rohdaten-Zeichenfolge an die Anfrage-Nachricht

$requestData = [ 
    'field1' => 123, 
    'field2' => 4567, 
    .... 
]  
$request->withParsedBody($requestData); 

Jetzt müssen wie unter dem Endpunkt mit XML oder JSON-String testen -

$requestData = '<xml> 
      <appid><![CDATA[app123]]></appid> 
      <device_info><![CDATA[test-device-5678]]></device_info> 
      .... 
      </xml>'; 
    $request->withParsedBody($requestData); 

Das Problem ist, dass withParsedBody() nur Array akzeptiert oder Objekt. Meine Frage ist also: Was ist der richtige Weg, um eine Rohdatenfolge an die Anfrage zu übergeben?

+0

können Sie versuchen, $ json = json_encode ($ string) 'als' json_decode ($ json, true) 'für Array – gaurav

+0

Leider erwartet der Endpunkt XML-Strings und wird Fehler, wenn die Eingabe nicht XML-Strings ist. Also muss ich die ursprüngliche Zeichenfolge übergeben, um sie zu testen. – LazNiko

+0

gut können Sie '$ Anfrage-> getBody() -> schreiben (" String ");' –

Antwort

1

Dies ist die Antwort basierend auf Dusan Kommentare.

Der Aufruf reparseBody() erzwingt das Anforderungsobjekt, den neuen Inhalt erneut zu analysieren.

Verwandte Themen