XMLファイルを送信するguzzleで投稿を実行したい。例は見つかりませんでした。
これまでに行ったことは次のとおりです。
$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();
何を試してもエラー-1が返されます。これは、xmlが無効であることを意味します。送信したXMLはオンライン検証に合格し、有効です%100
助けてください。
いくつかの実験の後、私はそれを理解しました。ここに誰かが行き止まりに達した場合の私の解決策があります。
$request = new Request(
'POST',
$uri,
['Content-Type' => 'text/xml; charset=UTF8'],
$xml
);
これは、Guzzle 6で私のために機能したものです。
// configure options
$options = [
'headers' => [
'Content-Type' => 'text/xml; charset=UTF8',
],
'body' => $xml,
];
$response = $client->request('POST', $url, $options);
Postメソッドを使用してxmlを送信する場合の例を次に示します。
$guzzle->post($url, ['body' => $xmlContent]);
あなたは以下の方法でそれを行うことができます
$xml_body = 'Your xml body';
$request_uri = 'your uri'
$client = new Client();
$response = $client->request('POST', $request_uri, [
'headers' => [
'Content-Type' => 'text/xml'
],
'body' => $xml_body
]);