私はcURLコマンドを使用してウェブサイトを認証し、それに応答してクッキーを与えた後、このクッキーを使用してREST APIここでは、このサービスPHP - cURLを使用してリダイレクトURLからクッキーを取得しても応答が得られない
への呼び出し作業curlコマンドです:
curl -v -l -H "Content-Type: application/x-www-form-urlencoded" -H "Referrer:https://mywebsiteurl.com?ticket=unique_ticket_id" -d "_charset_=UTF-8&errorMessage=User+name+and+password+do+not+match&resource=%2F&username=username%40domain.com&password=XXXXXX&nextpage=welcomeCM.jsp&viewInfo=&ticket=unique_ticket_id" -X POST https://mywebsiteurl.com/index.jsp
上記のコマンドチケットパラメータが今ウェブサイトのURL
と一緒に渡されたユニークなチケットIDが含まれていて、私はよcURL PHPを使用して同じことを達成しようとすると、ここにありますPHPコード:string(0) ""
何も私はcurl_getinfo
を試して、コメントを追加し、この後$response
に返さないなっていることを意味する:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mywebsiteurl.com/index.jsp");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "_charset_=UTF-8&errorMessage=User+name+and+password+do+not+match&resource=%2F&username=username%40domain.com&password=XXXXXX&nextpage=welcomeCM.jsp&viewInfo=&ticket=unique_ticket_id");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array(
'Content-Type: application/x-www-form-urlencoded',
'Referrer: https://mywebsiteurl.com?ticket=unique_ticket_id'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
echo $result;
curl_close ($ch);
ここecho $result
が、私はその後、var_dump($result);
を試してみました、それは、この出力を与えるもの
を示していませんコード:
echo "<pre>";
$info = curl_getinfo($ch);
print_r($info);
echo "</pre>";
これは私に与えられた次の配列:
Array
(
[url] => https://mywebsiteurl.com/index.jsp
[content_type] => text/html;charset=UTF-8
[http_code] => 302
[header_size] => 1306
[request_size] => 619
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 1.540687
[namelookup_time] => 0.028262
[connect_time] => 0.171774
[pretransfer_time] => 0.462507
[size_upload] => 280
[size_download] => 0
[speed_download] => 0
[speed_upload] => 181
[download_content_length] => 0
[upload_content_length] => 280
[starttransfer_time] => 1.54066
[redirect_time] => 0
[redirect_url] => https://mywebsiteurl.com/[email protected]&locale=en_US
[primary_ip] => YY.YYY.YYY.YY
[certinfo] => Array
(
)
[primary_port] => 443
[local_ip] => XX.XX.XXX.XX
[local_port] => 47692
)
は今、私の目標は$result
でクッキーを取得することですが、&何も
は何かがcurlコマンド同等のPHPコードに欠落していること、それです、それに返されません取得された空であります?
誰かがクッキーに
おかげで多くを取得する方向で&ポイント私を私を助けてください!
UPDATE
私はecho $result
が/Dashboard?viewInfo=
に私の現在のローカルのWebページをリダイレクトされ、それが成功したログイン
しかし、cURLの実行後のこの時間の後に302リダイレクトをたどる持つように要求にcurl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
を追加しましたstring(1462) " "
var_dump($result);
が結果としてされても
存在しません。
そしてcurl_getinfo($ch)
この時間は、次の配列を与えている:
Array
(
[url] => https://mywebsiteurl.com/[email protected]&locale=en_US
[content_type] => text/html;charset=UTF-8
[http_code] => 200
[header_size] => 1821
[request_size] => 956
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 1
[total_time] => 1.746911
[namelookup_time] => 1.5E-5
[connect_time] => 1.5E-5
[pretransfer_time] => 6.2E-5
[size_upload] => 0
[size_download] => 1462
[speed_download] => 836
[speed_upload] => 0
[download_content_length] => 1462
[upload_content_length] => 0
[starttransfer_time] => 0.146587
[redirect_time] => 1.6003
[redirect_url] =>
[primary_ip] => YY.YYY.YYY.YY
[certinfo] => Array
(
)
[primary_port] => 443
[local_ip] => YY.YY.YYY.YY
[local_port] => 47705
)
はまだここに必要なCookieを取得することはできません、 助けてください!
おそらくあなたの問題を解決するが、知っておく価値ありませんワンノート:「参照元」のスペルが間違っている、それは「リファラー」でなければなりません(はい、それは間違った英語の綴りだが、それはそれはHTTPであるだけ方法です)。 –
ログインに成功した後、 '' curl_setopt($ ch、CURLOPT_FOLLOWLOCATION、1); 'を302リダイレクトに従わせる要求に追加する必要があります。 – drew010
@HaydenSchiff 本当に間違っていますが、これはスペルミスです。これはHTTPでの方法です:) – dreamcoder007