Gửi dữ liệu sử dụng WebRequest Class

Tut hướng dẫn từng bước sử dụng để gửi dữ liệu lên server.

Gửi dữ liệu lên host :
1.Tạo một thể hiện WebRequest bằng phương thức Create với địa chỉ web

WebRequest request = WebRequest.Create(“http://www.contoso.com/”);

2.Cài đặt các giá trị thuộc tính mà bạn cần cho WebRequest.Ví dụ để xác nhận quyền chứng thực, cài đặt thuộc tính Credentials .

request.Credentials = CredentialCache.DefaultCredentials;

Trong hầu hết trường hợp, thể hiện WebRequest tự nó đã đủ thẩm quyền để gửi dữ liệu.Tuy nhiên, nếu bạn muốn set các thuộc tính , bạn phải ép kiểu WebRequest về kiểu giao thức xác định (protocol-specific).Ví dụ:

((HttpWebRequest)request).UserAgent = “.Net Framework Example Client”;

3.Xác định giao thức gửi để chắc dữ liệu sẽ được gửi đi với request, như phương thức HTTP POST

request.Method = “POST”;

4.Set thuộc tính ContentLengh

request.ContentLengh = byteArray.Lenght;

5.Set thuộc tính ContentType với giá trị thích hợp

request.ContentType = “application/x-www-form-urlencoded”;

6.Tạo 1 luồng (Stream) để nắm dữ liệu request bằng phương thức GetRequestStream

Stream datastream = request.GetRequestStream();

7.Viết dữ liệu vào đối tượng datastream trả về ở bước trên.

datastream.write(byteArray, 0, byteArray.Lenght);

8.Thoát Stream

datastream.Close();

9.Gửi request lên server bằng phương thức GetResponse .Phương thức này sẽ trả về nội dung phản hồi từ server.

WebResponse response = request.GetResponse();

10.Ta có thể truy cập các thuộc tính của WebRespons hoặc ép kiểu sang protocol-specific.
Ví dụ, để truy cập thuộc tính giao thức HTTP của HttpWebResponse, ép kiểu WebResponse sang HttpWebResponse.

Console.WriteLine (((HttpWebResponse)response).StatusDescription);

11.Tạo 1 luồng (stream) lấy dữ liệu phản hồi từ server về, gọi phương thức GetResponseStream của WebResponse.

Stream data = response.GetResponseStream;

12.Sau khi đọc dữ liệu phản hồi, giải phóng Stream bằng phương thức Stream.Close() hoặc WebResponse.Close

response.Close();

Ex:

using System;
using System.IO;
using System.Net;
using System.Text;

namespace Examples.System.Net
{
public class WebRequestPostExample
{
public static void Main ()
{
// Create a request using a URL that can receive a post.
WebRequest request = WebRequest.Create (“http://www.contoso.com/PostAccepter.aspx “);
// Set the Method property of the request to POST.
request.Method = “POST”;
// Create POST data and convert it to a byte array.
string postData = “This is a test that posts this string to a Web server.”;
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.
Stream dataStream = request.GetRequestStream ();
// Write the data to the request stream.
dataStream.Write (byteArray, 0, byteArray.Length);
// Close the Stream object.
dataStream.Close ();
// Get the response.
WebResponse response = request.GetResponse ();
// Display the status.
Console.WriteLine (((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
dataStream = response.GetResponseStream ();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader (dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd ();
// Display the content.
Console.WriteLine (responseFromServer);
// Clean up the streams.
reader.Close ();
dataStream.Close ();
response.Close ();
}
}
}

Link gốc:

Tagged:

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: