0

我有一个用 PHP 编写的代码,目前在我的共享主机上运行。现在我要把它移到 Google App Engine 上。

sendRequest()方法将发布数据和 cookie 发送到另一个网站并返回响应。

private function sendRequest($url, array $data = array()) {
    $ch = curl_init(self::URL_BASE);
    $curlConfig = array(
        CURLOPT_URL => $url,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_COOKIE => "user_name=" . $this->username . "; user_password=" . md5($this->password));
    if ($url == self::URL_LOGIN) {
        $this->cookieFile = tempnam("/tmp", "CURLCOOKIE");
        $curlConfig[CURLOPT_COOKIEJAR] = $this->cookieFile;
    } else {
        $curlConfig[CURLOPT_COOKIEFILE] = $this->cookieFile;
    }
    curl_setopt_array($ch, $curlConfig);
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

问题:

  • App Engine 不支持 CURL 模块
  • tempnam()功能被禁用

我搜索了很多,但找不到任何替代方案。fsockopen()也被禁用。

4

1 回答 1

1

根据此处的示例,使用流上下文设置请求中的 cookie 。

从您的代码中不确定为什么要保留 cookie 以及保留多长时间 - 您可以为此目的使用memcache吗?

于 2013-09-30T04:06:43.510 回答