it-swarm.com.ru

wp_remote_get не работает с безопасными соединениями https?

Я запрашиваю API Twitter, когда использую небезопасное соединение http: // оно работает нормально, без wp_error (но Twitter превышает предельную ошибку), но когда я использую https: // оно работает в моем браузере, я вижу json и xml форматирует, но есть ошибка с wp_remote_get, я попытался использовать массив второго аргумента ('sslverify' => false), и он тоже не работает?

так что я делаю что-то не так или wp_remote_get не работает с https?

вот код:

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

когда я использую http, как этот URL

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

это работает без ошибок.

Я пробовал wp_remote_get на других apis тоже, но всегда при использовании https это не работает.

заранее спасибо.

Правка:

Я получаю это из 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) { } }

и после использования array('sslverify' => false) я получаю от 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

Хорошо, только что заметил, что вы заключаете URL в одинарные кавычки, поэтому переменная $username не будет интерпретироваться. Попробуйте это вместо:

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

Или используйте двойные кавычки вместо одинарных.

3
shabushabu