问题

如何发送一个简单的HTTP GET请求并且取回相应的HTTP响应。

设计

创建一个WebClient类的实例,然后使用它的DownloadData()方法。

方案

string uri = "http://server/path/WebForm.aspx";

WebClient wc = new WebClient();

Console.WriteLine("Sending an HTTP GET request to " + uri);

byte[] bResponse = wc.DownloadData(uri);

string strResponse = Encoding.ASCII.GetString(bResponse);

Console.WriteLine("HTTP response is: ");

Console.WriteLine(strResponse);

注解

WebClient类是System.Net命 名空间的一部分,默认情况下对于控制台程序是可访问的。通过WebClient.DownloadData()方法来取回一个HTTP响应是极为简单的, 但是DownLoadData()返回的只是一个字节数组(byte array),必须要通过System.Text.Encoding.ASCII.GetString()方法把它转换成一个字符串。另一种方案是使用 WebClient.OpenRead()方法并且把它与一个stream相关联:

string uri = " http://server/path/WebForm.aspx";

WebClient wc = new WebClient();

Console.WriteLine("Sending an HTTP GET request to " + uri);

Stream st = wc.OpenRead(uri);

StreamReader sr = new StreamReader(st);

string res = sr.ReadToEnd();

sr.Close();

st.Close();

Console.WriteLine("HTTP Response is ");

Console.WriteLine(res);

相比于测试ASP.NET Web应用程序,WebClient类更适合用来测试静态的HTML网页。这段代码可以用来检测ASP.NET程序发回的响应,但是要把这段代码扩展成自 动化测试程序,你需要根据期望值来检查HTTP响应。5.8节用到了本节的技术,在5.8节我们通过编程的方式来决定ASP.NET Web应用程序的ViewState值。5.11节所涉及的技术展示了如何根据给定的期望值来检查一个HTTP响应。

发送一个简单的http get 请求并且响应的更多相关文章

  1. 发送一个简单的HTTP GET请求并且取回响应。

    string uri="http//www.baidu.com"; WebClient wc = new WebClient(); Console.WriteLine(" ...

  2. requests(一): 发送一个json格式的post请求

    今天给一位同学解决post发送数据格式为json格式的请求,顺便确认一下问题归属. 背景: 用postman工具发送一个数据格式为json的请求,得到了服务器的响应. 用python的requests ...

  3. 写一个ActionFilter检测WebApi接口请求和响应

    我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把 ...

  4. 用JAVA发送一个XML格式的HTTP请求

    import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStr ...

  5. postman:模拟发送一个需要cookie认证的请求

    1.chrome 已安装插件intercept. 由于chrome安全的限制,发不出带cookie的请求.如果想要发送带cookie的请求,需要开启Interceptor. 2.chrome 浏览器要 ...

  6. nodejs 如何发送一个带JSON的GET请求?

    GET /megacorp/employee/_search { "aggs" : { "all_interests" : { "terms" ...

  7. 一个简单的Post Get请求

    WWW请求 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; u ...

  8. Python网络编程 - 一个简单的客户端Get请求程序

    import socket target_host = "www.baidu.com" target_port = 80 # create a socket object clie ...

  9. HeadFirst Jsp 04 (请求和响应作为servlet)

    servlet 的存在就是为了客服服务, servlet的任务是得到一个客户的请求, 再发回一个响应. 由上图可知, web 容器会在启动后就加载所有的servlet类, 并为之创建实例和初始化 注意 ...

随机推荐

  1. html-----015---HTML ASCII 参考手册

    HTML 和 XHTML 用标准的 7 比特 ASCII 代码在网络上传输数据. 7 比特 ASCII 代码可提供 128 个不同的字符值. 7 比特 可显示的 ASCII 代码 <html&g ...

  2. Codevs 5056 潜水员

    5056 潜水员 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 潜水员为了潜水要使用特殊装备.他有一个带两种气体的气缸:一个为氮气 ...

  3. 比较全面的gdb调试命令

    from:http://blog.csdn.net/xiajun07061225/article/details/8960332 http://blog.csdn.net/cjfeii/article ...

  4. AAABBBBCCCC

    语单词词性简写语的意义:,n. 名词 ,noun的缩写v. 动词 , verb的缩写pron. 代词 , pronoun的缩写adj. 形容词, adjective的缩写adv. 副词, adverb ...

  5. mongodb 非 admin 库 认证登陆失败 原因(百度好多都 是渣)db.addUser() 请走开。

    首先先晒一下log 日志错误信息 2016-07-13T22:19:43.667+0800 I ACCESS [conn4] authenticate db: finddemo { aut henti ...

  6. umount 卸载的时候,提示busy!

    mount /dev/sdb /mnt/disk umount -l /mnt/disk[有busy的问题可以加上l项] 1. 查询当前谁在使用device,fuser /mnt/temp,查询结果是 ...

  7. mysql 清空表 Truncate及delete区别

    1.delete from 表名[where]; 2.truncate table 表名; 3.delete将mysql表中所有记录一条一条删除到删完 4.truncate保留mysql表的结构,重新 ...

  8. html5音频和视频相关属性和方法

    方法 方法 描述 addTextTrack() 为音视频加入一个新的文本轨迹 canPlayType() 检查指定的音视频格式是否得到支持 load() 重新加载音视频标签 play() 播放音视频 ...

  9. C++中二维数组的动态创建与处理

    C++中用new动态创建二维数组的格式一般是这样: TYPE (*p)[N] = new TYPE [][N]; 其中,TYPE是某种类型,N是二维数组的列数.采用这种格式,列数必须指出,而行数无需指 ...

  10. ORACLE 定时任务JOB

    http://www.cnblogs.com/xclw/archive/2009/12/04/1616945.html