我正在尋找在LinkedIn上搜索業務「X」的方法,這需要有效的登錄會話。我使用PHP的HttpRequest對象發出Http請求,但我不熟悉處理會話數據/ cookie以找出如何查明我的錯誤。使用PHP的HttpRequest登錄網站?
$loginURL = "https://www.linkedin.com/uas/login-submit";
$loginPostData = array("session_key" => "[email protected]",
"session_password" => "itsasecret",
"source_app" => "",
"signin" => "",
"session_redirect" => "",
"csrfToken" => "",
"sourceAlias" => "",
);
$httpRequest = new HttpRequest($loginURL, HttpRequest::METH_POST);
$httpRequest->setContentType("application/x-www-form-urlencoded");
$httpRequest->addPostFields($loginPostData);
$httpRequest->setOptions(array("redirect" => 10));
$httpMessage = $httpRequest->send();
$responseBody = $httpMessage->getBody());
我寫$ responseBody到一個文件,然後在瀏覽器中打開它,但它僅包含日誌領域通用的LinkedIn頁面。使用「篡改數據」擴展firefix,我可以看到下面的請求頭允許Firefox加載一個會話查看網頁:
Host=www.linkedin.com
Content-Type=application/x-www-form-urlencoded
Content-Length=124
POSTDATA=source_app=&[email protected]&session_password=itsasecret&signin=&session_redirect=&csrfToken=&sourceAlias=
有一些奇怪的有關數據,我回去過:我期望看到類似「無效的用戶名或密碼」,但我得到默認linkedin.com頁面。
您是否堅持使用HttpRequest?你可以使用'curl'嗎? –
我寧願使用HttpRequest,因爲我已經爲它設置了,並且我沒有在PHP中使用curl的經驗。 – JoBu1324
我也用我的用戶名中的「@」替換了「%40」,不起作用 – JoBu1324