كيف يمكنني استخدام Perl LWP إلى تسجيل الدخول إلى تطبيق ويب?

StackOverflow https://stackoverflow.com/questions/1028929

  •  06-07-2019
  •  | 
  •  

سؤال

أود أن كتابة برنامج نصي لتسجيل الدخول إلى تطبيق ويب ومن ثم الانتقال إلى مناطق أخرى التطبيق:

use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use Data::Dumper;

$ua = LWP::UserAgent->new(keep_alive=>1);

my $req = POST "http://example.com:5002/index.php",
[ user_name     => 'username',
  user_password => "password",
  module        => 'Users',
  action        => 'Authenticate',
  return_module => 'Users',
  return_action => 'Login',
];

my $res = $ua->request($req);
print Dumper(\$res);
if ( $res->is_success ) {
    print $res->as_string;
}

عندما حاولت هذه المدونة أنا لست قادرا على تسجيل الدخول إلى التطبيق.رمز حالة HTTP عاد هو 302 التي يتم العثور عليها ، ولكن مع أية بيانات.

إذا أنا آخر اسم المستخدم/كلمة المرور مع كل الأشياء المطلوبة ثم يجب العودة الصفحة الرئيسية من التطبيق والحفاظ على اتصال مباشر لنقل أجزاء أخرى من التطبيق.

هل كانت مفيدة؟

المحلول

وأنت قد تكون قادرة على استخدام WWW :: يمكنن لهذا الغرض:

<اقتباس فقرة>   

والميكانيكية يدعم أداء سلسلة من الصفحة جلب بما في ذلك الروابط التالية وتقديم النماذج. كل الصفحة التي تم جلبها يتم تحليل واستخراج الروابط وأشكاله. وصلة أو شكل يمكن اختيار، يمكن ملء حقول النموذج والصفحة التالية يمكن جلب. الميكانيكية أيضا بتخزين التاريخ من عناوين المواقع التي قمت بزيارتها، والتي يمكن الاستعلام وإعادة النظر.

نصائح أخرى

وأنا على التخمين بأن LWP لا يتبع إعادة التوجيه:

push @{ $ua->requests_redirectable }, 'POST';

وأي سبب لماذا كنت لا تستخدم WWW :: مكننة <؟ / P>

لقد استعملت LWP لتسجيل الدخول إلى العديد من المواقع على شبكة الإنترنت و فعل الأشياء مع المحتوى ، لذلك ينبغي أن يكون هناك أي مشكلة في فعل ما تريد.التعليمات البرمجية الخاصة بك تبدو جيدة حتى الآن لكن هناك أمرين أود أن أقترح:

  1. كما ذكر, قد تحتاج إلى تقديم الطلبات redirectable
  2. قد تحتاج أيضا إلى تمكين ملفات تعريف الارتباط:$ua->cookie_jar( {} );

ويساعد هذا الأمل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top