PDA

View Full Version : سوال: خواهشمند است استفاده از دو کلاس HttpWebRequest , httpwebresponse را آموزش دهید



aapalireza
پنج شنبه 20 آبان 1389, 19:06 عصر
سلام
خواهشمند است استفاده از دو کامپوننت HttpWebRequest , httpwebresponse را آموزش دهید,
خیلی جست و جو کردم,
ولی نفهمیدم که این دو using اند و یا component ,
اصلاً چه جوری باید از این‌ها استفاده کرد؟!

اگر میشه آموزش مقدماتی استفاده هم بدید خوبه!
لطفاً پاسخ دهید و تاپیک را پاک نکنید...!:عصبانی++:

bade saba
جمعه 21 آبان 1389, 01:04 صبح
یه برنامه کوچیک نوشتم که برات میزارم که از هر دوتا کلاس استفاده شده
در این برنامه با کلیک دکمه صفحه اول سایت گوگل از اینترنت گرفته میشه و کدهای اون در textBox نمایش داده میشه

اگه دقیق بگی میخوای چه بکنی دقیق تر میشه راهنمایی کرد

موفق باشید

aapalireza
جمعه 21 آبان 1389, 14:32 عصر
خیلی خیلی ممنون,
میشه در مورد این HttpWebRequest , httpwebresponse بیشتر توضیح بدید؟!
اگر محتویات یک سایت را بخواهیم بررسی کنه و کد htmlش را نیاره چی؟!
یعنی محتویات سایت را بیاره...

میشه با این کد تکست باکس یا... پر کرد و بر روی چیزی کلیک کرد؟مثل webbrowser!
چه مواقعی از این و چه مواقعی از webbrowser استفاده میکنیم؟


اگه دقیق بگی میخوای چه بکنی دقیق تر میشه راهنمایی کرد

می‌خواهم اطلاعات را از یک listbox بخواند و به ترتیب آن‌ها را به صورت string به آخر آدرس اضافه کند و آن سایت را ببیند, و بعدی...
و شرط بگذارم که هر صفحه ای شامل OKبود نام آن را در listbox2 ذخیره کند...

bade saba
جمعه 21 آبان 1389, 15:58 عصر
میشه در مورد این HttpWebRequest , httpwebresponse بیشتر توضیح بدید؟!


این دو کلاس برای ارسال و دریافت اطلاعات از کامپیوتر شما به یک host و بلعکس هستش شما از طریق کلاس httpWebRequest یک درخواست رو به یک میزبان وب میفرستید و جواب این درخواست رو توسط کلاس httpWebResponse نگهداری میکنی.


اگر محتویات یک سایت را بخواهیم بررسی کنه و کد htmlش را نیاره چی؟!


این کار ممکن نیست مگر این که شما مثلا مستقیم به بانک اطلاعاتی در یک سایت متصل بشید و اطلاعات یک جدول رو بگیرید که با توجه به مطالبی که شما گفتی این موضوع هدف شما نیست. هر وب پیجی که شما از اینترنت میگیرید شامل کدهای html , CSS , javaScript و ... هست که با توجه به این که با چه زبانی اون پیج رو نوشته باشن تغییر میکنه اما به هر حال این کدها وجود دارند و این کدها هستند که صفحات رو به این شکلی که شما میبینید ایجاد میکنن برای دیدن اطلاعات واقعی هر پیج میتونی به view>source در بروزرت بری تا کدهای تشکیل دهنده صفحه رو ببینی


میشه با این کد تکست باکس یا... پر کرد و بر روی چیزی کلیک کرد؟

شما به شکل دستی نمیتونید این کار رو بکنید اما با کد میشه این کار رو انجام داد من در این پست (http://www.barnamenevis.org/forum/showthread.php?t=248492)نوشتم که برای لاگین کردن باید چه کرد که این شامل پر کردن و فشردن دکمه هم میشه البته برای این کار شما باید یه مقدار کمی با زبان سادهای مثل html آشنا باشید که مثلا بتونید بفهمید که این پیج اطلاعات رو با متد POST میفرسته یا متد GET که بتونید اون رو برای کلاس مشخص کنی

webRequest.Method = "POST"


چه مواقعی از این و چه مواقعی از webbrowser استفاده میکنیم؟


این برمیگرده به نیاز شما اگر شما بخوای پیج رو به کاربر نشون بدی بهتره اون بخش رو از webBrowser استفاده کنی و اگر کاری که میکنی نیاز به نشون داده شده به کاربر نداره و یا کارت پیچیدست و نیاز به عملیات زیاد و ... داره من توصیه میکنم از webBrowser استفاده نکنی


می‌خواهم اطلاعات را از یک listbox بخواند و به ترتیب آن‌ها را به صورت string به آخر آدرس اضافه کند و آن سایت را ببیند, و بعدی...
و شرط بگذارم که هر صفحه ای شامل OKبود نام آن را در listbox2 ذخیره کند...

این کار به راحتی با هر دو کلاس قابل پیاده سازی هستش اما در هر دوی اونها شما برای بیرون کشیدن اطلاعات مورد نظرت از صفحه دریافتی میبایست با کدهای صفحه دریافتی سر و کله بزنی که ممکن بسته به اینکه اون صفحات چه ساختاری دارند برای استخراج اطلاعات راه های ساده تر و سخت تری وجود داشته باشه

موفق باشید

aapalireza
جمعه 21 آبان 1389, 17:23 عصر
خیلی ممنون
من قبلاً هم در مورد این کامپوننت سوال پرسیده بودم فقط شما پاسخ دادید,
ظاهرا خیلی با HttpWebRequest , httpwebresponse کار کردید!
خیلی مفید بود,
اگر میشه اتصال به دیتابیس هم آموزش بدید عالیه!
اگر تفاوت دیتابیس برای اتصال به آن مهم است, ترجیحاً دیتابیس mysql را بگویید که با سایتم عملی تست کنم.





نقل قول:
میشه با این کد تکست باکس یا... پر کرد و بر روی چیزی کلیک کرد؟
شما به شکل دستی نمیتونید این کار رو بکنید اما با کد میشه این کار رو انجام داد من در این پست (http://www.barnamenevis.org/forum/showthread.php?t=248492)نوشتم که برای لاگین کردن باید چه کرد که این شامل پر کردن و فشردن دکمه هم میشه البته برای این کار شما باید یه مقدار کمی با زبان سادهای مثل html آشنا باشید که مثلا بتونید بفهمید که این پیج اطلاعات رو با متد POST میفرسته یا متد GET که بتونید اون رو برای کلاس مشخص کنی


با html آشنایی دارم, اگر میشه اینایی که تو آن صفحه را گفتید توضیح بدهید و آموزش بدهید ممنون میشوم,
زیرا من هنوز نفهمیدم که چه گونه آرگومان باید ارسال کنم!


ممنون:خجالت:

bade saba
جمعه 21 آبان 1389, 18:34 عصر
اگر میشه اتصال به دیتابیس هم آموزش بدید عالیه!
اگر تفاوت دیتابیس برای اتصال به آن مهم است, ترجیحاً دیتابیس mysql را بگویید که با سایتم عملی تست کنم.


برای اتصال به دیتابیس موجود در سایتت باید از کانکشنهای معمول در C#‎ که برای اتصال به دیتابیس وجود دارد با کانکشن استرینگ های مخصوص اون دیتابیس ها استفاده کنی میتونی هر کانکشنی که میخوای رو تو این سایت (http://www.connectionstrings.com/) پیدا کنی و در این حالت به اون دوتا کلاس نیازی نیست اما توصیه من با توجه به بررسی که تو این زمینه کردم ( که ممکن مورد قبول بقیه دوستان نباشه ) اینه که به این شکل به خاطر مسائل امنیتی عمل نکنی و یه پیج برای اتصال به دیتابیست به عنوان واسط ایجاد کنی و با همین کلاس HttpWebRequest به اون صفحه وصل بشی دیگه ببین کدوم روش برای کاری که میخوای مناسبتره

برای ارسال اطلاعات 3 خط در اون کدها باید اطلاعات وارد بکنی که من اون سه خط رو توضیح میدم بقیه خطوط رو هم به همون شکل کپی پیست بکن و اگر راجب بهشون و این که دارن چیکار میکنن اطلاعاتی میخوای خیلی راحت تو MSDN یا یه سرچ کوچیک در google میتونی اطلاعات خوبی پیدا کنی


HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://www.sample.com/login.php");


در این خط پیجی که اطلاعات باید برای اون ارسال بشه وارد میشه دقت کن پیجی که اطاعات برای اون ارسال میشه نه صفحه ای که اطلاعات در اون وارد میشه مثلا شما اطلاعات رو در صفحه login.php وارد میکنی و با فشردم دکمه این صفحه اطلاعات رو برای user.php میفرسته شما باید در این بخش user.php رو به عنوان آدرس بدی.


byte[] data = encoding.GetBytes("name=myuser&password=mypassword&s1=Button");


در این خط شما اطلاعاتی که میخوای ارسال کنی باید وارد کنی و نحوه وارد کردن به شکل زیر باید باشه

"input1=value1&input2=value2&..."
شما باید تمام object هایی که اطلاعاتی ارسال میکنن رو اینجا بیاری و اگر مثل textbox باید درشون اطلاعاتی وارد بشه اون اطلاعاتی که میخوای تو اون textBox وارد کنی بنویسی و اگر مثل btn خودش مقدار value رو داره باید اون مقدار ارسال بشه. دقت کن که حتما input hidden ها رو هم باید در این بخش بیاری

** این خط وارد کردن اطلاعات و فشردن دکمه رو شبیه سازی میکنه


webRequest.Method = "POST";


در این خط متد ارسال رو باید مشخص کنی

قبل از کپی پیست کدهای اون پستی که در بالا آدرسش رو دادم حتما کاملا پست رو بخون چون کد بالایی ایراداتی داره که گفتم چجوری باید حلش کرد

موفق باشید

samanmari
پنج شنبه 01 اسفند 1392, 17:11 عصر
@bade saba پست جالب و آموزش خوبی بود، مرسی
یه سوال دارم
فرض کنید یه سایتی به نام example.com داشته باشیم و دیتابیسی رو سرور، حالا می خوام با یک برنامه دسکتاپ سی شارپ به این سرور داده ارسال و دریافت کنیم
مثلا کاربر وقتی برای اولین بار برنامه رو ران میکنه باید ثبت نام کنه (نمیخوام تو دیتابیس لوکال داده ها ذخیره بشه، میخوام رو دیتابیس سایت ذخیره بشه) و اطلاعاتش ارسال بشه و نوتیفیکیشن از سایت بگیره و یا فایل آپ کنه و کارهایی دیگه
ممنون میشم در این باره هم صحبت کنید.

multi-site
سه شنبه 16 دی 1393, 21:03 عصر
با سلام
من از webbrowser استفاده کرده ام میخام که راست کلیک رو ببندم چطور میشه؟
یه سوال دیگه من میخام یه پیج رو باز کنم و یه عکسی رو بگیره و تو برنامه نشون بده و کاربر از اون عکس استفاده کنه یه ورودی خاصی رو به برنامه بده؟