PDA

View Full Version : سوال: استفاده از webrequest در پر کردن فرم های سایت



BraveMind
یک شنبه 12 مهر 1388, 16:18 عصر
سلام چطور میشه صفحات اینترنتی را که مثلا تعدادی textbox داره را با استفاده webrequest پر کرد؟
کسی چیزی در مورد webrequest , webresponse می داند

__H2__
دوشنبه 13 مهر 1388, 11:51 صبح
سلام
از همچین کدی میتوانید استفاده کنید:
(این کد TextBox1 را پرکرده و Button1 را هم کلیک میکند.)


'VB.Net
Dim request As System.Net.WebRequest = System.Net.WebRequest.Create("http://site.com/Default.aspx")
Dim content() As Byte = System.Text.Encoding.UTF8.GetBytes("TextBox1=value1&Button1=Button&__EVENTTARGET=")
Dim html As String

request.ContentType = "application/x-www-form-urlencoded"
request.Method = "POST"
request.ContentLength = content.Length
Using strmrequest As System.IO.Stream = request.GetRequestStream()
strmrequest.Write(content, 0, content.Length)
End Using

Using _
response As System.Net.WebResponse = request.GetResponse, _
strmresponse As System.IO.Stream = response.GetResponseStream(), _
reader As New System.IO.StreamReader(strmresponse, System.Text.Encoding.UTF8)

html = reader.ReadToEnd
End Using



//C#‎‎.Net
System.Net.WebRequest request = System.Net.WebRequest.Create("http://site.com/Default.aspx");
byte[] content = System.Text.Encoding.UTF8.GetBytes("TextBox1=value1&Button1=Button&__EVENTTARGET=");
string html;

request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.ContentLength = content.Length;
using (System.IO.Stream strmrequest = request.GetRequestStream())
{
strmrequest.Write(content, 0, content.Length);
}

using (System.Net.WebResponse response = request.GetResponse()){
using (System.IO.Stream strmresponse = response.GetResponseStream()){
using (System.IO.StreamReader reader = new System.IO.StreamReader(strmresponse, System.Text.Encoding.UTF8)){

html = reader.ReadToEnd();
}}}




اجرا شدن صحیح دستورات بسیار بسیار به صفحه حساس است.
مثلاً در صفحات aspx
- برای اتفاق افتادن رویدا کلیک معمولاً باید EVENTTARGET__ را هم اضافه کرد تا سوییچر داخلی فعال شود.
- شاید نیاز باشد گزینه EnableEventValidation برای page مربوطه False شود، چون ASP.NET مثل بقیه زبانهای سمت سرور چندان بی در و پیکر نیست و مدیریت شدیدی روی درخواستها دارد، معمولاً به صورت داخلی رویدادها را اعتبار سنجی میکند.

ولی در مورد صفحات دیگر زبانهای سروری این دو نکته وجود ندارد.

در کل اگر میخواهید، میتوانید کد فوق را به عنوان یک یادگیری و سرنخ در نظر بگیرید و سپس و بیشک باید آنرا بسیار توسعه بدهید.


=====
لینک مرتبط:
http://forum.p30world.com/showpost.php?p=2987070

BraveMind
سه شنبه 14 مهر 1388, 08:39 صبح
ممنون از لطفت تست میکنم بعد اگه سوال بود مزاحمت میشم

kouroshfar
پنج شنبه 12 بهمن 1391, 15:25 عصر
چجوری میشه EnableEventValidation رو برای صفحات غیرفعالش کرد؟