ssuhat
ssuhat

Reputation: 7656

Laravel guzzle cURL error 6: Could not resolve host: http (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

On my development my code is working properly. When I push to my server it become error.

cURL error 6: Could not resolve host: http (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Here is my code:

use GuzzleHttp\Client;

try {
    $client = new Client();
    $client->request('POST', env('API_DOMAIN') . '/v1/user/auth/verified_email',
        ['headers' => ['Authorization' => 'cm9vcGlhLnVzZXIud2ViOkY0RVN3VXJheS1qVVB1a18='],
         'query'   => ['token' => $key]]);

    return redirect('/')->with('status', 'Your email has been verified. Thanks!')->with('statusType', 'success');
} catch (ConnectException $e) {
    Log::error($e);
    return redirect('/');
}

Any solution?

Thanks

Upvotes: 12

Views: 52047

Answers (7)

Aravindh Gopi
Aravindh Gopi

Reputation: 2166

Do

php artisan optimize:clear

to clear all caches in laravel

Upvotes: 1

Muaath Alhaddad
Muaath Alhaddad

Reputation: 361

Just run your web server, I had the same error but my server was OFF, then I turn it on, and it works for me

Upvotes: -1

David Enoma
David Enoma

Reputation: 311

I had this issue recently and it turns out that I was tunneling through a proxy server. I stopped routing through a proxy and it worked just fine.

Upvotes: 0

omarjebari
omarjebari

Reputation: 5499

This answer helped me. It turned out to be a disparity between curl versions on OSX. Each had a version of openssl being used. Nightmare to find but a straightforward fix. See https://stackoverflow.com/a/54908305/2867894

Upvotes: 1

Matianda
Matianda

Reputation: 171

My solution is to clear all type of caches in Artisan.

Run these commands together:

php artisan route:clear
php artisan config:clear
php artisan cache:clear

Upvotes: 16

Amir Hajiha
Amir Hajiha

Reputation: 935

I spent a day to find that the best practice is to actually catch Exceptions in the following manner:

catch(\Exception $ex)

That \ makes all the difference! so DO NOT use :

catch(Exception $ex)

You can put this catch at the end where all other specific exceptions are caught.

Upvotes: 3

Roderik
Roderik

Reputation: 337

Your API_DOMAIN may not have been set to a proper url (did it start with http:// or https://)?

It may also be worth a try to restart the web server (e.g. restart nginx).

It could also be a connectivity issue on your server. You can try a reboot of the VPS or check if the firewall did not block your outgoing request. Maybe disable iptables or firewalld for a moment.

There could also be issues with the DNS for the API_DOMAIN. Maybe you did configure it locally in your /etc/hosts on your developmnet environment but not on production. You may check if the dns resolves properly or add it to your /etc/hosts file on your production server.

Upvotes: 1

Related Questions