If you don't know about Laravel Http client yet, give it a read in the official documentation here.
Here's how you can pass the request data while making a POST
, PUT
or PATCH
request as an array (transformed to JSON).
$response = Http::post('http://test.com/users', [
'name' => 'Steve',
'role' => 'Network Administrator',
]);
What if you end up with an old school API that still uses XML to receive data?
Here's how you can do this:
$response = Http::withHeaders([
"Content-Type" => "text/xml;charset=utf-8"
])->send("POST", "http://some-url.com", [
"body" => '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SaveData xmlns="http://tempuri.org/">
<pParam>
Value
</pParam>
</SaveData>
</soap:Body>
</soap:Envelope>'
]);
If you know of a better alternative, please let me know :)
Top comments (5)
If you are using Laravel 7+ it is even easier
Http::withHeaders(["Content-Type" => "text/xml;charset=utf-8"])
->post(self::CREATE_TOKEN_ENDPOINT, ['body' => $xml]);
The PHP has the XML extension support.
Try to look at the xmlwriter example :).
Hi. Thanks for the reply.
I am not sure how XMLWriter is relevant here?
This is particularly about "sending xml as request data in an http request".
I think it can use the XML extension to generate XML dynamically.
And not just use the XML string to be a request data.
github.com/ricorocks-Digital-Agenc...