سی شارپ

ارسال درخواست به صفحات وب در سی شارپ

در این آموزش قصد داریم تا نحوه ی ارسال اطلاعات به یک صفحه وب را در زبان برنامه نویسی سی شارپ آموزش دهیم. به طور کلی دو متد GET و POST برای ارسال اطلاعات میان صفحات اینترنتی وجود دارد. تفاوت این دو متد در این است که متد GET اطلاعات را بصورت عادی ارسال میکند، اما متد POST اطلاعات را رمزگذاری کرده و منتقل می کند.

ابتدا کلاس زیر را به پروژه خود اضافه کنید:


public class MyWebRequest
{
private WebRequest request;
private Stream dataStream;

private string status;

public String Status
{
get
{
return status;
}
set
{
status = value;
}
}

public MyWebRequest(string url)
{
// Create a request using a URL that can receive a post.

request = WebRequest.Create(url);
}

public MyWebRequest(string url, string method)
: this(url)
{

if (method.Equals("GET") || method.Equals("POST"))
{
// Set the Method property of the request to POST.
request.Method = method;
}
else
{
throw new Exception("Invalid Method Type");
}
}

public MyWebRequest(string url, string method, string data)
: this(url, method)
{

// Create POST data and convert it to a byte array.
string postData = data;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);

// Set the ContentType property of the WebRequest.
request.ContentType = "application/x-www-form-urlencoded";

// Set the ContentLength property of the WebRequest.
request.ContentLength = byteArray.Length;

// Get the request stream.
dataStream = request.GetRequestStream();

// Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length);

// Close the Stream object.
dataStream.Close();

}

public string GetResponse()
{
// Get the original response.
WebResponse response = request.GetResponse();

this.Status = ((HttpWebResponse)response).StatusDescription;

// Get the stream containing all content returned by the requested server.
dataStream = response.GetResponseStream();

// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);

// Read the content fully up to the end.
string responseFromServer = reader.ReadToEnd();

// Clean up the streams.
reader.Close();
dataStream.Close();
response.Close();

return responseFromServer;
}

}

این کلاس ۳ عدد constructor دارد که در تعداد پارامترهای ورودی با هم متفاوت هستند. منظور از url آدرس صفحه وب مورد نظر است که اطلاعات باید به آن ارسال شوند، method روش ارسال اطلاعات است که می تواند مقادیر “GET” یا “POST” باشد و data اطلاعاتی است که می خواهیم به صفحه وب منتقل کنیم. توجه داشته باشید که متغیر data فقط زمانی مقداردهی می شود که متد ارسال POST باشد. زیرا در متد GET داده ها در url و به دنبال آدرس صفحه می آیند. قالب اطلاعات در داخل متغیر data به شکل زیر خواهد بود:


string data = "username=yusef&password=1234";

کلاسی که به پروژه خود اضافه کردیم، یک متد به نام GetResponse دارد که نتیجه درخواست(جواب برگشتی از وب) را برمی گرداند.

برای استفاده از امکانات این کلاس در پروژه خود، کافیست از نمونه کد زیر استفاده کنید:

//create the constructor with post type and few data
string data = "username=yusef&password=1234";
MyWebRequest myRequest = new MyWebRequest("http://www.yoursite.ir","POST",data);
//show the response string on the console screen.
string Response = myRequest.GetResponse();

موفق و پیروز باشید!
همچنین می توانید نمونه پروژه مربوط به این آموزش را دانلود نمایید:
پسورد فایل: www.myempire.ir

دریافت نمونه پروژه

در این آموزش قصد داریم تا نحوه ی ارسال اطلاعات به یک صفحه وب را در زبان برنامه نویسی سی شارپ آموزش دهیم. به طور کلی دو متد GET و POST برای ارسال اطلاعات میان صفحات اینترنتی وجود دارد. تفاوت این دو متد در این است که متد GET اطلاعات را بصورت عادی ارسال میکند، …

بررسی کلی

امتیاز کاربر: 4.35 ( 6 رای)
0

۲ دیدگاه

  1. سلام این برنامه از طریق متد POST ارسال داده ها ارسال نمیکنه مشکلش از چیه؟

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme