我正在创建一个适用于Google App Engine的应用程序,其中不允许使用CURL。据我所知,urlFetch是最好的替代品。
我不知道是否可以通过urlFetch实现相同的结果,但我真的非常希望有更多经验的人能够帮助我。
计划是将以下CURL请求转换为urlFetch。如果有人能指导我正确的方向,或提出更好的替代方案,我将非常感激。
public function postCall($endpoint, $post_data, $param1, $param2, $json=1, $headers=false) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $this->options['url'].$endpoint);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
if ($headers && is_array($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$post_data['req_token'] = $this->hash($param1, $param2);
curl_setopt($ch, CURLOPT_POST, count($post_data));
if (!$headers)
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
else
curl_setopt($ch,CURLOPT_POSTFIELDS, $post_data);
$this->debug('POST params: ' . json_encode($post_data));
$result = curl_exec($ch);
if ($result === false) {
$this->debug('CURL error: '.curl_error($ch));
return false;
}
$this->debug('HTTP response code' . curl_getinfo($ch, CURLINFO_HTTP_CODE));
$this->debug('POST return ' . $result);
// close connection
curl_close($ch);
if ($json)
return json_decode(utf8_encode($result), true);
else
return $result;}
curl_*
API好了几个光年,而且你知道吗?没有libcurl依赖,所以它可以在任何合理的PHP安装中直接使用。 - user895378