View Full Version : HTML post
پروفسور
دوشنبه 12 اردیبهشت 1384, 02:11 صبح
چجوری میشه یه URL رو توی یک WinApp به سرور فرستاد و دادههای برگشتی رو Proccess کرد؟
مهم نحوه فرستادن و دریافت از طریق URL توی WinApp هست.
یاشار
دوشنبه 12 اردیبهشت 1384, 03:23 صبح
با استفاده از WebClient در System.Net.
پروفسور
سه شنبه 13 اردیبهشت 1384, 21:08 عصر
کمکم کنید لطفا.
فقط همین؟
یاشار
سه شنبه 13 اردیبهشت 1384, 22:12 عصر
1- آیا میخواین که به سایت اطلاعاتی رو بفرستید و نتیجهاش رو ببینید ( http-post ) یا میخواهید source یک صفحه رو بررسی کنید ؟
2- دادههای برگشتی رو میخواهید به صورت باینری بررسی کنید یا متنی ؟
3- آیا از قبل مشخص هست که دادههای برگشتی فایل است یا متن است یا Stream است ؟
برای مثال کد زیر به یک سایت مشخص، یک تقاضا میفرسته و source رو داخل یک string ذخیره میکنه. بعد میشه با RegEx قسمتهای دلخواهتون رو ازش جدا کنید. ( با فرض اینکه System.IO و System.Net وارد شدهاند)
WebRequest Req;
Req = WebRequest.Create("www.yejaayi.com");
WebResponse Response = Req.GetResponse();
Stream St = Response.GetResponseStream();
StreamReader SR = new StreamReader(St);
string Result = SR.ReadToEnd();
Response.Close();
SR.Close();
St.Close();
پروفسور
سه شنبه 13 اردیبهشت 1384, 22:30 عصر
1- آیا میخواین که به سایت اطلاعاتی رو بفرستید و نتیجهاش رو ببینید ( http-post )
بله
- دادههای برگشتی رو میخواهید به صورت باینری بررسی کنید یا متنی ؟
XML و یک سری فایل که باید download بشن و آدرس download توی Response مشخص میشه.
آیا از قبل مشخص هست که دادههای برگشتی فایل است یا متن است یا Stream است ؟
ممکن است هر سه این موارد باشد
میشه در مورد هر سه توضیح بدید؟
چجوری میشه به Request یک سری header زد و بعد فرستاد؟
مثلا cookie یا Content-Type یا Authorization
یاشار
سه شنبه 13 اردیبهشت 1384, 22:51 عصر
ببخشید، من یه لحظه قاطی کردم تو کدوم بخش هستم، کد VB فرستادم. ( کد تصحیح شد. )
تعیین Header و Content-type و ... از طریق کلاس WebClient انجام میشه. خواص Credentials رو برای Authentication استفاده کنید. با RegEx قسمتی که باید اطلاعاتتون رو پست کنید رو توی source صفحه پیدا کنید و مقدار دهی کنید. با خاصیت Headers هم میتونید content-type رو مشخص کنید. بعد با استفاده از UploadData اطلاعاتتون رو بفرستید و جواب رو بررسی کنید.
در حال حاضر کد آماده دم دست ندارم براتون بفرستم ولی یه کم با WebClient کلنجار برین، خیلی کارهای جالبی میشه باهاش کرد ( Uploadfile , Downloadfile , ... )
پروفسور
سه شنبه 13 اردیبهشت 1384, 22:59 عصر
متشکرم دوست من.
در حال حاضر کد آماده دم دست ندارم
اگر فرصت کردید این کار رو بکنید
برای من emergency هست.
M.GhanaatPisheh
چهارشنبه 14 اردیبهشت 1384, 05:53 صبح
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetwebclientclasstopic.asp
تو MSDN بگردید
راجع به WebClient مطالب کاملی پیدا میکنید که احتمالا نیازتون رو برطرف می کنه.
mdssoft
پنج شنبه 29 فروردین 1387, 03:06 صبح
قبل از هر چیز ببخشید که من این تاپیک رو بالا میارم .
اما مطالبش کاملا مرتبط با سوال من هست .
چجوری میشه یه URL رو توی یک WinApp به سرور فرستاد و دادههای برگشتی رو Proccess کرد؟من هم دقیقا می خوام همین کار رو بکنم ، البته می خوام از طریق App به سایت PersianBlog ، login کنم . اما مشکلی دارم .
اینکه اصلا پاسخ درستی از طرف سرور persianblog نمیگیرم و فقط دوباره صفحه اول سایت بر می گرده . فکر کنم کدم ایراد داره . این هم کد من :
try
{
string uriString = "http://www.persianblog.ir/Default.aspx";
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
string postData = param;
// Apply ASCII Encoding to obtain the string as a byte array.
byte[] postArray = Encoding.ASCII.GetBytes(postData);
myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
//UploadData implicitly sets HTTP POST as the request method.
byte[] responseArray = myWebClient.UploadData(uriString, postArray);
// Decode and display the response.
textBox1.Text = Encoding.ASCII.GetString(responseArray);
}
catch (Exception ex)
{
textBox1.Text = ex.Message;
}این هم پروژه با VS 2008
16367
ممنون میشم جوابم رو بدین
mdssoft
شنبه 31 فروردین 1387, 07:53 صبح
یه جوابی می دادین بد نبودا !!!!
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.