首页  >  文章  >  后端开发  >  如何使用 Curl、Cookie 和 SSL 登录 Barnes & Noble 的移动网站?

如何使用 Curl、Cookie 和 SSL 登录 Barnes & Noble 的移动网站?

Barbara Streisand
Barbara Streisand原创
2024-11-10 03:32:03240浏览

How to Log into Barnes & Noble's Mobile Website Using Curl, Cookies, and SSL?

使用 Curl 通过 SSL、Cookies 和 POST 登录

背景

此查询重点是使用 Curl 登录 Barnes & Noble 的移动网站,由于使用 SSL 和 cookie 而遇到困难。

解决方案

要解决该问题,请考虑以下调整:

  1. URL 编码: 对 POST 请求中的 URL 参数(例如电子邮件和密码)进行编码。
  2. X 值包含: 在登录 URL 中包含 x 值(从初始页面提取) ).

工作示例

以下代码将这些调整合并到一个工作示例中:

// Constants
$EMAIL = '[email protected]';
$PASSWORD = 'yourpassword';
$COOKIE_FILE = "/tmp/cookies.txt";
$LOGIN_URL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn";
$AGENT = "Nokia-Communicator-WWW-Browser/2.0 (Geos 3.0 Nokia-9000i)";

// Curl Initialization
$ch = curl_init();

// Basic Headers
$headers = ["Accept: */*", "Connection: Keep-Alive"];

// Curl Options
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $AGENT);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIE_FILE);
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIE_FILE);

// Step 1: Initialize with Login URL
curl_setopt($ch, CURLOPT_URL, $LOGIN_URL);
curl_exec($ch);

// Step 2: Extract Form Fields
$content = curl_getinfo($ch);
$fields = getFormFields($content);

// Populate Form Fields
$fields['emailAddress'] = $EMAIL;
$fields['acctPassword'] = $PASSWORD;

// Extract X Value
$loginUrl = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x={$x}";

// Construct POST Fields
$postFields = http_build_query($fields);

// Update Login URL and POST Options
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);

// Perform Login and Retrieve Result
$result = curl_exec($ch);
print $result;

外部资源

寻求进一步帮助在使用 Curl 时,请考虑以下额外资源:

  • [使用 curl 检索 Android Market mylibrary](https://stackoverflow.com/questions/4940264/retrieve-android-market-mylibrary-with-curl )
  • [使用curl进行多个操作](https://stackoverflow.com/questions/6032527/multiple-actions-with-curl)
  • [通过curl发送xml和标头](https ://stackoverflow.com/questions/2149671/sending-xml-and-headers-via-curl)
  • [使用 PHP 和 Curl 登录 Google,Cookie 关闭?](https://stackoverflow. com/questions/1794383/login-to-google-with-php-and-curl-cookie-turned-off)
  • [使用 PHP 和 cURL 登录 Pinterest 不起作用](https://stackoverflow.com /questions/13597892/pinterest-login-with-php-and-curl-not-working)

以上是如何使用 Curl、Cookie 和 SSL 登录 Barnes & Noble 的移动网站?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn