这个错误快把我逼疯了。
我用谷歌搜索,这是由于在"https"中缺少"s",但我的代码是正确的,我的端点在url中有"s",最重要的是,相同的代码在另一个网站上工作,而不是我的。
http://bidicotest.altervista.org/bidico/book/add这是网站,尝试搜索一本书,错误将显示在上方。
这是我的代码,我100%确定它能工作
function get_remote_content($search_term)
{
$api_end_point = "https://www.googleapis.com/books/v1/volumes?q=";
$api_param = urlencode($search_term);
//Chiamata api a google books
$result = drupal_http_request($api_end_point . $api_param );
//Se il codice è 200 (ok) o 304 (Not modified)
if (in_array($result->code, array(200, 304))) {
return print_book_matching_list($result->data);
} else { //error
return "<p>Si è verificato un errore: controllare la connessione.</p>";
}
}
它给了我:
[request] => GET/books/v1/volumes?q=asd HTTP/1.0 User-Agent: Drupal (+http://drupal.org/) Host: www.googleapis.com [data] => {"error":{"errors":[{"domain":"global","reason":"sslRequired","message":"执行此操作需要使用SSL。"}],"code":403,"message":"该操作需要使用SSL协议。"}} [protocol] => HTTP/1.0 [status_message] => Forbidden [headers] => Array ([cache-control] => private, max-age=0 [date] => Fri, 28 Aug 2015 08:28:11 GMT] accept-ranges] => none [server] => GSE [vary] => Origin,Accept-Encoding [content-type] => application/json;charset=UTF-8 [expires] => Fri, 28 Aug 2015 08:28:11 GMT [x-content-type-options] => nosniff [x-frame-options] => SAMEORIGIN [x-xss-protection] => 1;mode=block) [code] => 403 [error] => Forbidden
我启用了s2s通信,但没有任何变化。
代码在本地完全工作。
我在托管公司的论坛上问过,但是没有人知道。我自己想不出来,请求你的帮助。
提前感谢,斯特凡诺
已解决。
drupal_http_request使用套接字连接,而不是cURL。
我的托管公司只允许cURL连接。
这个成功了:https://www.drupal.org/project/chr