0

我正在尝试在 cURL 中进行 2 次请求。第一个请求是让我登录,我保存一个 txt 文件以在仍然登录时发出第二个请求。

第一部分像魅力一样起作用,第二部分不起作用。

有我的代码。

$lien = 'https://mysite.com/login';
$postfields = array(
    'username' => 'test',
    'password' => 'test'
);


$path_cookie = 'connexion.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $lien);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));

$return = curl_exec($curl);

echo($return);
curl_close($curl);


$lien2 = 'https://mysite.com/myform';
$postfields2 = array(
    'data1'     => 'test123',
    'data2'     => 'Account',
    'sort'      => '3',
    'fileFormat'    => '0',
    'timezone'  => 'Eastern+Standard+Time',
    'zeroRated' => 'true',
    'startDate'     => '2013-05-01',
    'endDate'   => '2013-05-31'
);

$curl = curl_init();


curl_setopt($curl, CURLOPT_URL, $lien2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields2);
curl_setopt($curl, CURLOPT_COOKIEFILE, realpath($path_cookie));

$return = curl_exec($curl); 

echo $return;
curl_close($curl);

unlink(realpath($path_cookie));

我正在使用 $_post 数据的第二部分来执行表单。表单处理发生在同一页面中......

我的连接仍在运行,但我不知道,服务器正在向我发送错误,例如:

处理您的请求时发生异常。我们记录了异常..

这对我没有帮助。有人有想法吗?

谢谢。

4

2 回答 2

0

此时您的 SSL 可能存在问题。尝试添加这些选项:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
于 2013-06-19T13:33:28.117 回答
0

最后,我收到了支持团队的答复。“Eastern+Standard+Time”应该是“Eastern Standard Time”,服务器会自动转义那些字符串……谢谢大家的帮助!

于 2013-06-19T15:38:32.813 回答