1

我正在尝试在 PHP 中调用登录 API,如下所示,但我不熟悉使用 API。我想知道如何在这里管理会话,以便在用户登录后调用其他 API;到目前为止,我只能登录,但我无法调用任何其他 API,因为它说用户没有登录。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://example.com/Login?username=user&password=1234");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
4

1 回答 1

1

您是否需要这样的东西来存储创建后的会话/cookie。

function CURL_R($url, $cookie, $file, $jar)
{
   $c = curl_init();
   curl_setopt($c, CURLOPT_URL, $url);
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
   if ($file == true) {
      curl_setopt($c, CURLOPT_COOKIEFILE, $cookie);
   }
   if ($jar == true) {
      curl_setopt($c, CURLOPT_COOKIEJAR, $cookie);
   }
   return curl_exec($c);
   curl_close($c);
}

// ---

$username = 'username';
$password = 'password';
$cookie = $username . '.txt';

$login = CURL_R(
   "http://www.example.com/Login?username={$username}&password={$password}",
   $cookie,
   true,
   true
);

$other_api = CURL_R(
   "http://www.example.com/Other-api",
   $cookie,
   true,
   false
);

要使用 CURL_R() 函数,字段是 url、cookie 路径、文件和 jar。jar 是存储 cookie / session 的内容,因此登录后 jar 将为 false 并且 file 将为 true 以在其他 API 上使用 cookie。

于 2013-10-20T07:17:11.200 回答