我正在开发一个网站,将与REST协议进行通信。 REST服务的所有者想要一个cookie与REST调用一起发送,也许通过头文件发送。发送Cookie与REST呼叫,请帮助!
这是如何在PHP中完成的,我该如何发送一个cookie以及一个REST调用?
感谢您的帮助!
我正在开发一个网站,将与REST协议进行通信。 REST服务的所有者想要一个cookie与REST调用一起发送,也许通过头文件发送。发送Cookie与REST呼叫,请帮助!
这是如何在PHP中完成的,我该如何发送一个cookie以及一个REST调用?
感谢您的帮助!
如果您使用卷曲,看看curl_setopt optionsCURLOPT_COOKIEJAR
(存储从响应饼干)和CURLOPT_COOKIEFILE
(装饼干请求之前)。将两者都设置为同一个文件应该足够了。
$yourfile = '/any/file/you/want';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $yourfile);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $yourfile);
$result = curl_exec ($ch);
curl_close ($ch);
您可以使用cURL函数修改标题。
<?php
$submit_url = "https://sitename/process.php";
$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($curl, CURLOPT_URL, $submit_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
$data = curl_exec($curl);
curl_close($curl);
?>
显然,我通过Facebook Connect授权我自己后,Cookie由API的所有者用http set-cookie命令设置。我怎样才能得到它来填充$ cookiefile。 – user339067 2010-07-07 08:55:28
那么如何使用带有Cookie的PHP和CURL的POST请求看起来像? – user339067 2010-07-07 08:45:47
@ user339067:添加了一个示例 – Piskvor 2010-07-07 08:50:08
(就像旁边一样,如果它有cookie,它不是* pure * REST,但这比宗教问题更重要) – Piskvor 2010-07-25 12:24:03