Jump to content
happywire

[SOLVED] CURL vs. WireHttp

Recommended Posts

[solution]

========================================================

I am setting up and using a cloud service that encodes images.
https://github.com/rosell-dk/webp-convert-cloud-service

The usage of the service works with this example.
https://github.com/rosell-dk/webp-convert-cloud-service/blob/master/docs/api.md#usage-example-php

I am wondering, should I re-write this bit of the code below and use WireHttp instead of CURL?
What negative implications could it have if I do not make use of WireHttp?

<?php

// from https://github.com/rosell-dk/webp-convert-cloud-service/blob/master/docs/api.md#usage-example-php

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => 'http://example.com/wpc.php',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => [
        'action' => 'convert',
        'file' => curl_file_create($source),
        'salt' => $salt,
        'api-key-crypted' => $apiKeyCrypted,
        'options' => json_encode(array(
            'quality' => 'auto',
        ))
    ],
    CURLOPT_BINARYTRANSFER => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HEADER => false,
    CURLOPT_SSL_VERIFYPEER => false
]);

$response = curl_exec($ch);

// The WPC cloud service either returns an image or an error message
// Verify that we got an image back.
if (curl_getinfo($ch, CURLINFO_CONTENT_TYPE) == 'application/octet-stream') {
    $success = file_put_contents($destination, $response);
}
else {
    // show error response
    echo $response;
}

curl_close($ch);

 

Share this post


Link to post
Share on other sites

A) there are no negative implications using CURL instead of WireHttp, if you handle your sent and received files / data correct.

B) WireHttp itself makes use of CURL. Besides "CURL" It also uses "fopen" and "socket". The default usage is set to "auto", but you can explicitly tell it which one you prefer, by passing an options array as fourth param to its send() method. For example, this setting want to use "fopen" with a fallback to "socket":

$response = $http->send($url, $data, 'POST', ['use' => 'fopen', 'fallback' => 'socket']);

 

This one only would use CURL:

$response = $http->send($url, $data, 'POST', ['use' => 'curl']);

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Horst beat me to it, WireHttp is basically a wrapper around CURL, However that thread you linked, pointed out something about making a PATCH Request.

Share this post


Link to post
Share on other sites
57 minutes ago, Sephiroth said:

However that thread you linked, pointed out something about making a PATCH Request.

@Sephiroth I am not sure what "thread" you are referring to or that it is pointing out something about making a PATCH request.
What do you mean?

@horst So in fact it would be very advisable to rewrite the CURL parts of the example code using WireHttp in case a shared hosting does not have the CURL extension installed, right?

Share this post


Link to post
Share on other sites

Sorry I was referring to topic you posted, the author there had an issue making PATCH Request using WireHttp, I was only pointing that out should you encounter such. 

Share this post


Link to post
Share on other sites
19 minutes ago, Sephiroth said:

Sorry I was referring to topic you posted, the author there had an issue making PATCH Request using WireHttp, I was only pointing that out should you encounter such. 

Thank you.
However I still don't know what you are referring to unfortunately.
Sorry for that.

Have you got a link to that exact topic/thread/post please?
I looked at the repo https://github.com/rosell-dk/webp-convert-cloud-service as well as its open and closed issues and cannot find anything about a PATCH request.
Please, link me to it.. 😍

Share this post


Link to post
Share on other sites

Oops I get the confusion now, sorry my fault I assumed it was the same when i saw horst name here is the link:

 

  • Like 2

Share this post


Link to post
Share on other sites
56 minutes ago, happywire said:

So in fact it would be very advisable to rewrite the CURL parts of the example code using WireHttp in case a shared hosting does not have the CURL extension installed, right?

Yes, if you need this on multiple differend hosts, - or as learning lesson. 🙂
Otherwise, when only needed once, you are good to go with your custom code in a template or function.

  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...