如何将file_get_contents()更改为curl funtion
在以下行中出现错误。
致命错误:未捕获的异常'异常'邮件'必填选项未通过:access_token'在E:\ xampp \ htdocs \ google \ application \ libraries \ oauth2 \ Token \ Access.php:44堆栈跟踪:#0 E:\ xampp \ htdocs \ google \ application \ libraries \ oauth2 \ Token.php(30): OAuth2_Token_Access-> __ construct(NULL)#1 E:\ xampp \ htdocs \ google \ application \ libraries \ oauth2 \ Provider.php(224):OAuth2_Token :: factory(' access',NULL)#2 E:\ xampp \ htdocs \ google \ application \ libraries \ oauth2 \ Provider \ Google.php(61):OAuth2_Provider-> access(' 4 / tJi51U-xhCSYo ...',Array)# 3 E:\ xampp \ htdocs \ google \ application \ controllers \ auth_oa2.php(32):OAuth2_Provider_Google-> access(' 4 / tJi51U-xhCSYo ...')#4 [内部功能] :Auth_oa2->会话(' google')...
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($params),
)
);
$_default_opts = stream_context_get_params(stream_context_get_default());
$context = stream_context_create(array_merge_recursive($_default_opts['options'], $opts));
$response = file_get_contents($url, false, $context);
$return = json_decode($response, true);
答案 0 :(得分:0)
使用curl,
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($params),
)
);
$_default_opts = stream_context_get_params(stream_context_get_default());
$context = stream_context_create(array_merge_recursive($_default_opts['options'], $opts));
而不是上面的代码使用它,
$_default_opts = stream_context_get_params(stream_context_get_default());
$context = array_merge($_default_opts['options'], $params);
$curl = curl_init();
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($context));
$response = curl_exec($curl);
curl_close($curl);