web-dev-qa-db-fra.com

wp_remote_get ne fonctionne pas avec les connexions sécurisées https?

J'interroge l'API Twitter lorsque j'utilise une connexion non sécurisée http: // cela fonctionne très bien sans wp_error (mais Twitter dépasse l'erreur limite) mais lorsque j'utilise https: // cela fonctionne dans mon navigateur, je peux voir le json et le xml formats, mais il y a une erreur avec wp_remote_get, j'ai essayé d'utiliser un second tableau d'arguments ('sslverify' => false) et ça ne marche pas non plus?

est-ce que je fais quelque chose de mal ou wp_remote_get ne fonctionne pas avec https?

voici le code:

$response = wp_remote_get('https://Twitter.com/statuses/user_timeline/$username.json');
if ( is_wp_error($response) ) {
echo 'wp error';
}

quand j'utilise http comme cette URL

wp_remote_get('http://api.Twitter.com/1/statuses/user_timeline.json?screen_name=$username');

cela fonctionne sans l'erreur.

J'ai aussi essayé wp_remote_get sur d'autres apis, mais cela ne fonctionne toujours pas avec https.

merci d'avance.

MODIFIER:

Je reçois ceci de var_dump ($ response):

wp errorobject(WP_Error)#359 (2) { ["errors"]=> array(1) { ["http_request_failed"]=> array(1) { [0]=> string(146) "SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" } } ["error_data"]=> array(0) { } }

et après avoir utilisé array('sslverify' => false) je reçois de var_dump ($ response)

wp errorobject(WP_Error)#359 (2) { ["errors"]=> array(1) { ["http_request_failed"]=> array(1) { [0]=> string(23) "Empty reply from server" } } ["error_data"]=> array(0) { } } 
4
Pierre

D'accord, vous venez de remarquer que vous mettez l'URL entre guillemets simples pour que la variable $username ne soit pas interprétée. Essayez ceci à la place:

wp_remote_get('https://Twitter.com/statuses/user_timeline/'. $username .'.json');

Ou utilisez des guillemets doubles au lieu de simples.

3
shabushabu