DEV Community

Zubair Mohsin
Zubair Mohsin

Posted on

5 4

Passing request data as XML in Laravel Http Client

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',
]);
Enter fullscreen mode Exit fullscreen mode

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>'
    ]);
Enter fullscreen mode Exit fullscreen mode

If you know of a better alternative, please let me know :)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (5)

Collapse
 
gpakyoo profile image
Godluck Akyoo

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]);

Collapse
 
peter279k profile image
peter279k

The PHP has the XML extension support.

Try to look at the xmlwriter example :).

Collapse
 
zubairmohsin33 profile image
Zubair Mohsin

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".

Collapse
 
peter279k profile image
peter279k

I think it can use the XML extension to generate XML dynamically.

And not just use the XML string to be a request data.

Collapse
 
shadow243 profile image

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay