关闭

WebRequest

547人阅读 评论(0) 收藏 举报
分类:

<>

----------------------------------------------HttpWebRequest

// 待请求的地址

string url = "http://www.cnblogs.com";

             

// 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定,

// 可以用于各种请求,例如:Http, Ftp 等等。

// HttpWebRequest 是 WebRequest 的派生类,专门用于 Http

System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(url) as System.Net.HttpWebRequest;

 

// 请求的方式通过 Method 属性设置 ,默认为 GET

// 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。

request.Method = "POST";

 

// 还可以在请求中附带 Cookie

// 但是,必须首先创建 Cookie 容器

request.CookieContainer = new System.Net.CookieContainer();

 

System.Net.Cookie requestCookie = new System.Net.Cookie("Request", "RequestValue","/", "localhost");

request.CookieContainer.Add(requestCookie);

Console.WriteLine("请输入请求参数:");

 

// 输入 POST 的数据.

string inputData = Console.ReadLine();

 

// 拼接成请求参数串,并进行编码,成为字节

string postData = "firstone=" + inputData;

ASCIIEncoding encoding = new ASCIIEncoding();

byte[] byte1 = encoding.GetBytes(postData);

 

// 设置请求的参数形式

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

 

// 设置请求参数的长度.

request.ContentLength = byte1.Length;

 

// 取得发向服务器的流

System.IO.Stream newStream = request.GetRequestStream();

 

// 使用 POST 方法请求的时候,实际的参数通过请求的 Body 部分以流的形式传送

newStream.Write(byte1, 0, byte1.Length);

 

// 完成后,关闭请求流.

newStream.Close();

 

// GetResponse 方法才真的发送请求,等待服务器返回

System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();

 
// 首先得到回应的头部,可以知道返回内容的长度或者类型

Console.WriteLine("Content length is {0}", response.ContentLength);

Console.WriteLine("Content type is {0}", response.ContentType);

 

// 回应的 Cookie 在 Cookie 容器中

foreach (System.Net.Cookie cookie in response.Cookies)

{

    Console.WriteLine("Name: {0}, Value: {1}", cookie.Name, cookie.Value);

}

Console.WriteLine();

 

// 然后可以得到以流的形式表示的回应内容

System.IO.Stream receiveStream = response.GetResponseStream();     

 

// 还可以将字节流包装为高级的字符流,以便于读取文本内容 

// 需要注意编码

System.IO.StreamReader readStream = new System.IO.StreamReader(receiveStream, Encoding.UTF8);

 

Console.WriteLine("Response stream received.");

Console.WriteLine(readStream.ReadToEnd());

 

// 完成后要关闭字符流,字符流底层的字节流将会自动关闭

response.Close();

readStream.Close();

--------------------------------------------------WebRequst

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ClientAspApi
{
    using ClientAspApi.Models;
    using System.IO;
    using System.Net;
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //1.0使用C#代码模拟浏览器进行URL的请求得到响应数据
            WebRequest request = WebRequest.Create("http://localhost:59869/api/Menus/GetMeun");
            request.Method = "Get";

            //2.0将请求报文发送给服务器,同时拿到服务器的响应报文
            WebResponse response = request.GetResponse();

            //3.0提取服务器响应报文中的数据(服务端返回的数据是以流的形式返回的)
            System.IO.Stream stream = response.GetResponseStream();

            //3.1将服务端返回的数据流转换成一个字符串
            string responseTxt = string.Empty;
            using (StreamReader sr = new StreamReader(stream))
            {
                responseTxt = sr.ReadToEnd();
            }
	    //将responseTex这个Json格式的字符串反序列化成一个List<MenuInfo>的泛型对象
            List<MenuInfo> obj = Jil.JSON.Deserialize<List<MenuInfo>>(responseTxt);

            GridView1.DataSource = obj; //将这个泛型对象绑定到GridView1这个控件上。显示数据
            GridView1.DataBind();
        }
    }
}


0
0
查看评论

C#,WebRequest类、HttpWebRequest类与HttpRequest类的区别

C#,WebRequest类和HttpWebRequest类的区别? httpWebRequest是webRequest的子类,httpWebRequest是基于http协议的 . HttpWebRequest 是 WebRequest 的实例化使用,单独的 WebRequest 是不能使用...
  • ldghd
  • ldghd
  • 2013-09-06 17:38
  • 3374

使用WebRequest类下载文件

WebResponse response = request.GetResponse();             Stream resStream = response.GetResponseStream();
  • u014568921
  • u014568921
  • 2016-01-21 19:55
  • 956

WebRequest设置代理

企业上网一般都是通过网关服务器,部分非自动的代理服务器需要手工设置(就像IE需要在连接-局域网设置-代理器中的那样),前段为企业开发了一个需要远程访问HTTP服务器的应用,发现在手动代理的网络环境下,会在运行时WebRequest试图通过GetResponse获取Response对象时抛出:erro...
  • AlexTiger0
  • AlexTiger0
  • 2010-05-21 10:10
  • 5341

WebRequest

1:利用System.Net.WebRequest的Create方法创建WebRequest对象:System.Net.WebRequest ObjWebRequest =System.Net.WebRequest.Create(urlP);异常类型:NotSupportedEx...
  • liushengpiaoxu
  • liushengpiaoxu
  • 2007-07-14 11:03
  • 858

C#通过WEBREQUEST调用WEBSERVICE

1.首先通过WSDL说明创建SOAP消息 XML 2.创建WEBREQUEST,将XML加入WEBREQUEST的RequestStream 3.通过WEBREQUEST的Write函数发起请求 4.通过WEBREQUEST的GetResponse获取响应WebResponse 主要代码如下...
  • CHALLENG_EVERYTHING
  • CHALLENG_EVERYTHING
  • 2015-03-22 11:44
  • 879

webrequest请求JAVA servlet,webresponse获得返回的压缩后的XML文件,然后再解压处理

//获得压缩流和解压流只能通过byte数组来中间过度,而不能通过字符串来中间过度,因为编码不一致,解压完之后可以将byte数组转换成字符串,注意编码,有中文的话用GB2312或者UTF8试试private static string GetURlUnZipXML(string Url) ...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2010-02-23 14:12
  • 4077

webrequest 访问https url代

最近有个应用需要发送http/https webrequest,调用php https接口时注意设置 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; c#代码如下: /// /...
  • bianshusen
  • bianshusen
  • 2012-02-02 18:48
  • 3750

WebRequest.Credentials 属性

WebRequest.Credentials 属性  //这个单词的意思是证书 .NET Framework 4.5 其他版本 此主题尚未评级 - 评价此主题 当在子类中被重写时...
  • songjunyan
  • songjunyan
  • 2014-06-10 23:30
  • 811

利用WebRequest发送和获取数据

客户端代码  发送数据 private void button2_Click(object sender, EventArgs e) { string aa=GetWebStream("http://10.16.76.60/we...
  • zx13525079024
  • zx13525079024
  • 2011-11-17 14:43
  • 2505

C#WebRequest设置代理访问

//WebRequest设置代理,抓起数据             System.Net.WebProxy wp = new System.Net.WebProxy("192.1...
  • y_f123
  • y_f123
  • 2014-06-06 09:18
  • 994
    个人资料
    • 访问:906654次
    • 积分:13503
    • 等级:
    • 排名:第1154名
    • 原创:473篇
    • 转载:26篇
    • 译文:2篇
    • 评论:77条
    最新评论