PDA

View Full Version : مشکل در HTTPWebRequest



eyes_shut_number1
یک شنبه 17 اردیبهشت 1391, 09:32 صبح
سلام دوستان و اساتید
من ویخوام اطلاعات یک صفحه سایت رو کرول کنم و بدست بیازم
کار راحتیه اما نمیدونم چرا برای این سایت جواب نمیده و اررور زیر رو بر می گردونه
The remote server returned an error: (500) Internal Server Error.

کد ها هم این است :

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://chehoteli.com/Search.aspx?Sk_City=D645070E-CC74-4528-B8DD-E0FB59B923BF&S=&F=&Start=0&Sort=P");
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);

string htmlText = reader.ReadToEnd();
string s = htmlText;




آدرس سایت : http://chehoteli.com/Search.aspx?Sk_City=D645070E-CC74-4528-B8DD-E0FB59B923BF&S=&F=&Start=0&Sort=P

mehdi.mousavi
یک شنبه 17 اردیبهشت 1391, 10:24 صبح
سلام دوستان و اساتید من ویخوام اطلاعات یک صفحه سایت رو کرول کنم و بدست بیازم کار راحتیه اما نمیدونم چرا برای این سایت جواب نمیده و اررور زیر رو بر می گردونه The remote server returned an error: (500) Internal Server Error. کد ها هم این است : آدرس سایت : http://chehoteli.com/Search.aspx?Sk_City=D645070E-CC74-4528-B8DD-E0FB59B923BF&S=&F=&Start=0&Sort=P

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


ابتدا فکر کردم مشکل از cookie هاست، اما خوب، با آزمایشی که کردم دیدم اینطور نبوده.
بعدش به User-Agent شک کردم، اونو هم Set کردم، دیدم بازم خطای 500 رو میگیرم.
در مرحله سوم، به Encoding درخواست مشکوک شدم، اونو به UTF8 تغییر دادم، اما خطا هنوز پا بر جا بود.
در گام آخر، به Encoding و روش Pack کردن Response شک کردم، اونو در Firefox بررسی کردم، دیدم Accept Encoding اش deflate هستش. وقتی Set اش کردم، دیگه خطای 500 رخ نداد.


بنابراین کد رو باید بدین شکل تغییر بدید:


HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Headers["Accept-Encoding"] = "deflate";
req.AutomaticDecompression = DecompressionMethods.Deflate;
using (WebResponse response = req.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string content = reader.ReadToEnd();
}
}


موفق باشید.

eyes_shut_number1
یک شنبه 14 خرداد 1391, 18:24 عصر
سلام
مشکا مشابه برای این کد و سایت زیر! تغییرات رو دادم اما مشکل جل نشد!

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.antalyarealty.com/real-estate-antalya?page=" + txt1.Text + "&Sort=P");
req.Headers["Accept-Encoding"] = "deflate";
req.AutomaticDecompression = DecompressionMethods.Deflate;
using (WebResponse response = req.GetResponse())
{