C#:使用WebRequest类请求数据
本文翻译于:https://msdn.microsoft.com/en-us/library/456dfw4f(v=vs.110).aspx
下列程序描述的步骤用于从服务器请求一个资源,例如,一个Web页面或文件。必须由URI标识的资源。
从主机服务器请求数据:
1、创建一个WebRequest实例通过调用创建URI的资源。
WebRequest request = WebRequest.Create("http://www.contoso.com/");
note:
.net 框架提供了特定于协议的类来自WebRequest和WebResponse uri以“http:”开始,“https:“,“ftp:”,“文件:”。使用其他协议来访问资源,您必须实现特定于协议的类来自WebRequest WebResponse。有关更多信息,请参见编程可插协议。
2、设置在WebRequest任何你需要的属性值。例如,要启用身份验证,设置凭证属性NetworkCredential类的一个实例。
request.Credentials = CredentialCache.DefaultCredentials;
在大多数情况下,WebRequest类足以接收数据。然而,如果你需要设置特定于协议的特性,你必须把WebRequest特定于协议的类型。例如,访问HTTP-specific HttpWebRequest的性质,把WebRequest HttpWebRequest参考。以下代码示例展示了如何设置HTTP-specific UserAgent属性。
((HttpWebRequest)request).UserAgent = ".NET Framework Example Client";
3、向服务器发送请求,调用GetResponse。返回的WebResponse对象的实际类型是由请求的URI的方案。
WebResponse response = request.GetResponse();
你完成了一个WebResponse对象后,您必须关闭它通过调用方法。或者,如果您得到的响应流响应对象,您可以关闭流通过调用流。关闭方法。如果你不关闭响应或流,您的应用程序可以运行的连接到服务器并成为无法处理其他请求。
4、您可以访问的属性WebResponse或铸WebResponse读特定于协议的特定于协议的实例属性。例如,访问HTTP-specific HttpWebResponse的性质,把WebResponse HttpWebResponse参考。以下代码示例展示了如何显示状态信息发送响应。
Console.WriteLine (((HttpWebResponse)response).StatusDescription);
5、得到包含响应由服务器发送的数据流,使用GetResponseStream WebResponse的方法。
Stream dataStream = response.GetResponseStream ();
6、阅读响应的数据之后,您必须使用流关闭响应流。关闭方法或关闭使用WebResponse响应。关闭方法。没有必要调用关闭方法在响应流和WebResponse,但这样做并不是有害的。WebResponse。比分接近的流。关闭时关闭响应。
response.Close();
Demo:
using System;
using System.IO;
using System.Net;
using System.Text; namespace Examples.System.Net
{
public class WebRequestGetExample
{
public static void Main ()
{
// Create a request for the URL.
WebRequest request = WebRequest.Create (
"http://www.contoso.com/default.html");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
WebResponse response = request.GetResponse ();
// Display the status.
Console.WriteLine (((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
Stream 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 and the response.
reader.Close ();
response.Close ();
}
}
}
C#:使用WebRequest类请求数据的更多相关文章
- 基于AFNetWorking 3.0封装网络请求数据的类
对于使用 AFNetworking 的朋友来说,很多朋友都是直接调用 AFNetworking的 API ,这样不太好,无法做到全工程统一配置. 最好的方式就是对网络层再封装一层,全工程不允许直接使用 ...
- Struts2 请求数据的自动封装 及 自定义转换器类
请求数据自动封装: 实现原理:使用了参数拦截器.struts-default.xml中 <interceptor name="params" class="com. ...
- JavaWeb之如何把请求数据转成实体类
JavaWeb之如何把请求数据转成实体类 自己写个工具类加入下面两个静态方法 自定一个注解类DateTimeFormatting 调用方式User user = util.ObjectFromMap( ...
- 09.VUE学习之watch监听属性变化实现类百度搜索栏功能ajax异步请求数据,返回字符串
cmd下安装axios npm install axios 安装好后,会多出node_modules文件夹 思路: 监听data里的word改变时,发送ajax异步请求数据, 把返回的数据赋值给dat ...
- 利用WebRequest类上传文件
说明:1.WebRequest类是一个抽象类,所以上传类实际使用的是其子类 2.打开Fiddler软件,监视正常网页的文件上传,可以看到http协议的请求和响应信息,简略说明 (第一行:请求说明 PO ...
- C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别
C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRe ...
- C# http请求数据
http中get和post请求的最大区别:get是通过URL传递表单值,post传递的表单值是隐藏到 http报文体中 http以get方式请求数据 /// <summary> /// g ...
- Java服务器对外提供接口以及Android端向服务器请求数据
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
随机推荐
- Shell脚本调用ftp上传文件
Shell脚本调用ftp上传文件 1.脚本如下 ftp -n<<! open x.x.x.x ###x.x.x.x为ftp地址 user username password ###user ...
- Title Case a Sentence-freecodecamp算法题目
Title Case a Sentence(中单词首字母大写) 要求 确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. 思路 将句子小写化后用.split(& ...
- [vijos]P1514 天才的记忆
背景 神仙飞啊飞 描述 从前有个人名叫W and N and B,他有着天才般的记忆力,他珍藏了许多许多的宝藏.在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁能轻松回答出这个问题,便可以 ...
- matplotlib绘图(一)
绘制这折现图 导入响应的包 import numpy as npimport pandas as pdfrom pandas import Series,DataFrame%matplotlib in ...
- mysql中的的按小数位截取
format()函数返回类型是字符串,满三位会加一个逗号. 针对数字类型转换建议使用 convert或者cast函数,用法如下: format(param, 2) (不建议) convert(para ...
- 第一本C语言笔记(下)
11. 数组 (1)数组初始化时,如果初始化数字个数超过存储区个数,就忽略多余数字.如果初始化数字个数少于存储区个数,则后面的存储区自动被初始化为0. (2)数组名称可以代表数组里第一个存储区的地址. ...
- PHP四种序列化方案
原文地址:https://t.ti-node.com/thread/... 数据的序列化是一个非常有用的功能,然而目测很多人跟我一样,在刚接触这玩意的时候压根就不理解这货色到底是干啥用的,反正老师说了 ...
- 如何在 CentOS 7 上安装 Python 3
当前最新的 CentOS 7.5 默认安装的是 Python 2.7.5,并且默认的官方 yum 源中不提供 Python 3 的安装包.这里主要介绍两种在 CentOS 7 中安装 Python 3 ...
- HDU 3473 Minimum Sum 划分树
题意: 给出一个长度为\(n(1 \leq n \leq 10^5)\)的序列\(a\) 有若干次查询l r:找到一个\(x\)使得\(\sum \limits_{l \leq i \leq r} \ ...
- UVa 1629 DP Cake slicing
题意: 一块n×m的蛋糕上有若干个樱桃,要求切割若干次以后,每块蛋糕上有且仅有1个樱桃.求最小的切割长度. 分析: d(u, d, l, r)表示切割矩形(u, d, l, r)所需要的最小切割长度. ...