4

CURL が許可されていない Google App Engine 用のアプリケーションを作成しています。私の知る限り、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;}
4

4 に答える 4

6

これは、curl ネイティブ関数を urlfetch に置き換える単純なライブラリです。https://github.com/azayarni/purl

于 2014-02-05T15:05:45.437 に答える
2

ここの誰かが、azayarni の PURL の使用を提案しました。警告します: Google App Engine では使用しないでください。私はそれを機能させるために数日を費やしましたが、成功しませんでした.Google PHPクライアントSDKは、いくつかのCURL関数を書き換えており、単にPURLがそれを台無しにしています. 機能しているものもあれば、機能していないものもありました。URLFETCH ツールは、はるかに簡単で安全です。

于 2014-11-11T10:19:00.277 に答える
1

これは非常に古い投稿ですが、最新情報です。Google App Engineは、PHP 5.5 ランタイムでcURL をサポートするようになりました。

于 2015-05-18T13:36:29.397 に答える