C#实现简单的Http请求实例

本文实例讲述了C#实现简单的Http请求的方法。分享给大家供大家参考。具体分析如下:

通过.Net中的两个类HttpWebRequest类,HttpWebResponse类来实现Http的请求,响应处理。

第一个小测试是请求百度首页(http://www.baidu.com)的内容,也就是要获得百度首页的html内容,

实现步骤:

1.通过WebRequest类创建一个HttpWebRequest的对象,该对象可以包含Http请求信息。

(这里有点供大家思考:为什么要通过父类WebRequest来创建这个对象,而不能new一个HttpWebRequest来创建,在HttpWebRequest类中的构造函数是:protected HttpWebRequest(SerializationInfo serializationInfo, StreamingContext streamingContext); )

2.设置HttpWebRequest对象,其实就是设置Http请求报文的信息内容。

3.从HttpWebRequest对象中获取HttpWebResponse对象,该对象包含Http响应信息。

4.从响应信息中获取响应头信息和响应主体信息。

部分实现代码如下:

创建HttpWebRequest请求,设置请求报文信息

代码如下:

//请求

string uri = http://www.baidu.com;

HttpWebRequest request = HttpWebRequest.Create(uri) as HttpWebRequest;

request.Method = “GET”;                            //请求方法

request.ProtocolVersion = new Version(1, 1);   //Http/1.1版本

//Add Other …

接收响应,输出响应头部信息以及主体信息

代码如下:

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;

}

//如果主体信息不为空,则接收主体信息内容

if (response.ContentLength <= 0)

return;

//接收响应主体信息

using(Stream stream =response.GetResponseStream())

{

int totalLength=(int)response.ContentLength;

int numBytesRead=0;

byte[] bytes=new byte[totalLength+1024];

//通过一个循环读取流中的数据,读取完毕,跳出循环

while( numBytesRead < totalLength  )

{

int num=stream.Read(bytes,numBytesRead,1024);  //每次希望读取1024字节

if( num==0 )   //说明流中数据读取完毕

break;

numBytesRead+=num;

}

}

//将接收到的主体数据显示到界面

string content=Encoding.UTF8.GetString(bytes);

this.txt_Content.Text=content;

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#实现简单的Http请求实例

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23192.html

相关内容

C#多线程之Semaphore用法详解

winform c#中子窗体关闭刷新父窗体的实例

C#与Java的MD5简单验证(实例代码)

c#读写App.config,ConfigurationManager.AppSettings 不生效的解决方法


C#统计C、C++及C#程序代码行数的方法

C#设置开机启动项、取消开机启动项

C#实现在前端网页弹出警告对话框(alert)的方法

C#分布式事务的超时处理实例分析

时间: 2024-11-08 01:41:45

C#实现简单的Http请求实例的相关文章

django前端到后端一次简单完整的请求实例

请求过程: 用户请求---〉django的路由系统---〉根据url不同分发到不同的views函数做对应处理----〉返回html格式的字符串(需要动态请求的到数据库里面拿到数据迁入到html文件中) 一.django项目初始化 二.配置数据库,生成数据 三.配置url.py文件 四.配置views视图函数: 五.编程html文件: 访问效果:

Jsonp 跨域请求实例

关于jsonp的一个实例,其实自己也不是很了解,今天下午稍微研究了一下: 简单来说,jsonp就是为了两个不同网站之间数据传递而产生的,主要用于js脚本,因为浏览器本身是禁止跨域访问的: 本机实例: http://127.0.0.1:80/index.php <script src="http://cdn.staticfile.org/jquery/1.11.1/jquery.min.js"></script> <script type="tex

简单的Ajax应用实例

从网页前端输入提示范围内的字符,然后显示从后台返回的结果 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script type="text/javascript"> function showHint(str) { var xmlhttp; if (str.length==0) {

简单的iOS开发实例

项目需求 写一个iPhone应用程序,要求可以输入名字,点击按钮后,会显示一段文字向输入的名字打招呼,例如输入“宝玉”,显示“你好,宝玉!” 需求分析 这是一个很简单的应用程序,包含一个文本输入框,一个文本显示框,一个按钮.输入名字到文本输入框,再点击按钮,这时文本显示框的文字就会变成“你 好,<名字>!”.但是要注意,如果用户输入为空,要有警告提示用户重新输入:如果用户输入文字太长,超过16个字符,要自动截断. 产品设计 根据项目需求,画出相应的产品原型图: 初始状态 初始时,文本输入框为空

Mock.JS拦截HTTP请求实例解析-JS笔记

MockJS是一种比较通用的前端模拟HTTP请求及回复的工具,能够仿真处各类HTTP的请求及返回结果.实现在无后端的情况下,前端对于后端接口的仿真.Mock的基础使用也是比较简单,本文我们主要和大家分享Mock.JS拦截HTTP请求实例解析,希望能帮助到大家. 但,在引入MockJS时,import Mock from 'mockjs'会拦截所有前端发出的HTTP请求,无论是否使用Mock.mock开启Mock仿真,都会拦截HTTP请求. 这也就是为何,就算不Mock.mock也会后端无法获取前

JSP简单练习-数组应用实例

<%@ page contentType="text/html; charset=gb2312" %> <html> <body> <% int i,j,k; // 声明一个5行6列的二维数组 int intArray[][]=new int[5][6]; k=0; // 数组赋初始值 for(i=0;i<5;i++) { for(j=0;j<6;j++) { intArray[i][j]=k; k++; } } // 输出数组中的

Xamarin.Android之封装个简单的网络请求类

一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于HttpClient和HttpWebRequest两种方式的封装. 由于对这一块还不是很熟悉,所以可能不是很严谨. 二.先上封装好的代码 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Json

jQuery Ajax: $.post请求实例

jQuery Ajax: $.post请求实例 leyangjun.html页面 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="./jquery-2.0.0.min.js"></scri

用TCP发送几个简单的http请求

使用TCP调试小助手或者是telnet即可,他们都让你站在tcp这个巨人的肩膀上. 最简单的http请求,莫过于: GET / HTTP/1.1Host: www.baidu.com 注意最后要加两个空行,才表示一个完整的http请求,第一个空行用来标识head和body之间的分隔,第二个空行表明body为空. 也可以加上其他head域,如:Referer: http://hongchangfirst/ 响应可以为: HTTP/1.1 200 OKServer: nginx/0.7.68Date