2016-01-11 4 views
6

Ich möchte einen Beitrag mit guzzle eine XML-Datei senden. Ich habe kein Beispiel gefunden.Proper Weg zu senden (POST) xml mit guzzle 6

Was ich habe bisher getan ist:

$xml2=simplexml_load_string($xml) or die("Error: Cannot create object"); 
use GuzzleHttp\Client; 
use GuzzleHttp\Psr7\Request; 
$client = new Client(); 
// 
$request = new Request('POST', $uri, [ 'body'=>$xml]); 
$response = $client->send($request); 
// 
//$code = $response->getStatusCode(); // 200 
//$reason = $response->getReasonPhrase(); // OK 
// 
echo $response->getBody(); 

Egal was ich versuche ich wieder Fehler erhalten -1, was bedeutet, dass XML nicht gültig ist. XML, die ich übergebe, übergibt Online-Validierung zwar und ist gültig% 100

Bitte helfen.

Antwort

12

Nach einigen Versuchen habe ich es herausgefunden. Hier ist meine Lösung für den Fall, dass jemand eine Sackgasse erreicht.

$request = new Request(
    'POST', 
    $uri, 
    ['Content-Type' => 'text/xml; charset=UTF8'], 
    $xml 
); 
-2

versuchen, die Daten wie Posting:

$xml2=simplexml_load_string($xml) or die("Error: Cannot create object"); 
use GuzzleHttp\Client; 
use GuzzleHttp\Psr7\Request; 
$client = new Client(); 
// 
$request = new Request('POST', $uri, [ 
'form_params' => [ 
     'xml' => $xml, 
    ] 
]); 
$response = $client->send($request); 
//$code = $response->getStatusCode(); // 200 
//$reason = $response->getReasonPhrase(); // OK 
echo $response->getBody(); 
+0

Dank aber es funktioniert nicht. Wieder die gleiche Antwort. Gibt es eine Dokumentation, die das Optionsobjekt detailliert beschreibt? – user3485417

1

Wenn Sie xml senden mit der Post-Methode wollen, hier ist ein Beispiel:

$guzzle->post($url, ['body' => $xmlContent]); 
1

Dies ist, was für mich auf Guzzle 6 gearbeitet: für den Vorschlag

$Options = [ 
    'headers' => [ 
     'ContentT-ype' => 'text/xml; charset=UTF8', 
    ], 
    'body' => $XML, 
]; 

$Response = $Client->request('POST',$Url,$Options); 
Verwandte Themen