The example in this article describes how C # implements a simple HTTP request. Share to everyone for your reference. The specific analysis is as follows:
Pass. NET of two classes HttpWebRequest class, HttpWebResponse class to implement HTTP request, response processing.
The first small test is to request the content of Baidu homepage (http://www.baidu.com), that is, to get the HTML content of Baidu homepage,
Implementation steps:
1. Create an HttpWebRequest object from the WebRequest class that can contain HTTP request information.
(Here's a bit of a thought: Why create this object through the parent class WebRequest, not the new one HttpWebRequest, the constructor in the HttpWebRequest class is: protected HttpWebRequest (SerializationInfo SerializationInfo, StreamingContext StreamingContext); )
2. Setting the HttpWebRequest object is actually the information content of the HTTP request message.
3. Gets the HttpWebResponse object from the HttpWebRequest object that contains the HTTP response information.
4. Get response header information and response body information from the response information.
Some implementation codes are as follows:
Create HttpWebRequest request, set request message information
The code is as follows:
Request
string uri = http://www.baidu.com;
HttpWebRequest request = Httpwebrequest.create (URI) as HttpWebRequest;
Request. Method = "GET"; Request method
Request. ProtocolVersion = new Version (1, 1); http/1.1 version
Add other ...
Receive responses, output response header information, and body information
The code is as follows:
HttpWebResponse response=
Request. GetResponse () as HttpWebResponse;
Header
foreach (var item in response. Headers)
{
This.txt_Header.Text + = Item. ToString () + ":" +
Response. getResponseHeader (item. ToString ())
+ System.Environment.NewLine;
}
Receives the principal information content if the principal information is not empty
if (response. ContentLength <= 0)
Return
Receive Response body information
using (Stream stream =response. GetResponseStream ())
{
int totallength= (int) response. ContentLength;
int numbytesread=0;
Byte[] Bytes=new byte[totallength+1024];
Read the data in a stream through a loop, read it, jump out of the loop
while (Numbytesread < totallength)
{
int Num=stream. Read (bytes,numbytesread,1024); Every time you want to read 1024 bytes
if (num==0)//Description stream data Read complete
Break
Numbytesread+=num;
}
}
Display the received principal data to the interface
String content=encoding.utf8.getstring (bytes);
This.txt_content.text=content;
In addition to the Declaration,
Running GuestArticles are original, reproduced please link to the form of the address of this article
C # implements a simple HTTP request instance
This address: http://www.paobuke.com/develop/c-develop/pbk23192.html
Related content C # FTP action class share WinForm methods for extracting content using regular Expressions Example C # (ASP. NET) Multithreaded usage example (can be used to work with multiple tasks at the same time) in-depth understanding of how StringBuilder is used
C # Implement XML file deserialization read data to object method jquery combined with C # implementation of uploading a file C # to determine if multiple text boxes in a page have a duplicate implementation method C # and Java two-dimensional array difference analysis
C # implements a simple HTTP request instance