PDA

View Full Version : حرفه ای: استفاده از دستورات WebRequest و WebResponse



کامبیز اسدزاده
سه شنبه 17 مرداد 1391, 22:21 عصر
سلام

در رابطه با دستورات WebRequest و WebResponse کسی میتونه اطلاعات دقیق و کاملی رو ارائه بده همه جارو زیرو رو کردیم ولی نتیجه ای یافت نشد.

در صورت کلی من در نظر دارم با استفاده از یه نمونه ساده از Winform در #C به سایت لوگین و وارد بشم و اطلاعات رو بخونم و یا تغییراتی بدم در کل میخوام عملیات لاگین شدن و دریافت اطلاعات رو از طریق Win Application بدون استفاده از Browser انجام بدم.

WebRequest request = WebRequest.Create("http://exmplesite.com/account.html");
// مشخص کردن متد ارسال
request.Method = "POST";
// چیزهایی که قرار ارسال بشه
string postData;

postData = "متن ارسال ";


byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;

// تبدیل به stream
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();

//نمایش وضعیت
Console.WriteLine(((HttpWebResponse)response).Stat usDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
// خواندن اطلاعات دریافت شده
string responseFromServer = reader.ReadToEnd();
//نمایش پاسخ سرور
Console.WriteLine(responseFromServer);

reader.Close();
dataStream.Close();
response.Close();


یا دقیقترین چیزی که پیدا کردم این بود :

private void Test()
{


// Create the web request
HttpWebRequest request = WebRequest.Create("http://examplesite.com/account.html") as HttpWebRequest;
request.Method = "POST";
request.ContentLength = 0;
request.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
string cookieHeader;
string headerCookie;
WebHeaderCollection headers;

// Add authentication to request
request.Credentials = new NetworkCredential("kambiz", "123456789");
request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 FireFox";
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
cookieHeader = cookieContainer.GetCookieHeader(request.RequestUri );
// Console application output
if (request.HaveResponse && response.StatusCode == HttpStatusCode.OK)
{
headers = response.Headers;

//if (headers["Set-Cookie"] != null)
//{
headerCookie = headers["Set-Cookie"];
// }

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://examplesite.com/account.html");
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.8) Gecko/20050511 FireFox";
CookieContainer cookieContainer1 = new CookieContainer();
req.CookieContainer = cookieContainer1;
req.KeepAlive = false;
req.Headers.Add("Cookie", headerCookie);

cookieContainer1.SetCookies(req.RequestUri, cookieHeader);

using (HttpWebResponse res = req.GetResponse() as HttpWebResponse)
{
StreamReader reader1 = new StreamReader(res.GetResponseStream());

// Console application output
MessageBox.Show(reader1.ReadToEnd());
//textBox4.Text = headers.ToString();

}

}
else
MessageBox.Show("Error!");
}
}

اطلاعاتی در رابطه با این دستورات ندارم ذاتا آموزش و مثال های کافی برای کار با این دستوران ارائه نشده.