分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

webclient类学习

发布时间:2023-09-06 01:23责任编辑:林大明关键词:暂无标签

(HttpWebRequest模拟请求登录):当一些硬件设备接口 或需要调用其他地方的接口时,模拟请求登录获取接口的数据就很有必要。

webclient类:只想从特定的URI请求文件,则使用WebClient;

1.创建带Cookie的webclient:

 ???/// <summary> ?????/// 带 Cookie 的 WebClient ?????/// </summary> ?????public class CookieWebClient : WebClient ?????{ ?????????// Cookie 容器 ?????????public CookieContainer Cookies; ???????????????/// <summary> ?????????/// 创建一个新的 CookieWebClient 实例。 ?????????/// </summary> ?????????public CookieWebClient() ?????????{ ?????????????this.Cookies = new CookieContainer(); ?????????} ???????????????protected override WebRequest GetWebRequest(Uri address) ?????????{ ?????????????WebRequest request = base.GetWebRequest(address); ?????????????if (request is HttpWebRequest) ?????????????{ ?????????????????HttpWebRequest httpRequest = request as HttpWebRequest; ?????????????????httpRequest.CookieContainer = Cookies; ?????????????} ?????????????return request; ?????????} ?????} ?

2.http方法(Get、POST):

public ?CookieContainer cookies; ???????internal string HttpGet(string Url) ???????{ ???????????string result = ""; ???????????using (var client = new CookieWebClient()) ???????????{ ???????????????client.Encoding = Encoding.UTF8; ???????????????client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded,charset=UTF-8"; ???????????????client.Cookie = cookies; ???????????????byte[] data = client.DownloadData(Url); ???????????????result = Encoding.UTF8.GetString(data); ???????????} ????????????return result; ???????} ???????internal string HttpPost(string Url, string postDataStr) ???????{ ???????????string result = ""; ???????????using (var client = new CookieWebClient()) ???????????{ ???????????????client.Encoding = Encoding.UTF8; ???????????????client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded; charset=UTF-8"; ???????????????byte[] post = Encoding.UTF8.GetBytes(postDataStr); ???????????????byte[] data = client.UploadData(Url,post); ???????????????result = Encoding.UTF8.GetString(data); ???????????????cookies = client.Cookie; ???????????} ???????????return result; ???????}

3. controller

 [HttpGet] ???????public string Getinfo(string name, string pwd) ???????{ ???????????string hg = ""; ???????????string url = "http://111.38.56.130:8084/LoginHandler.ashx?time=" + DateTime.Now; ???????????string loginp = "action=Login&flag=1&name={0}&pwd={1}&isRemember=false"; ???????????string urlget = "http://111.38.56.130:8084/Company/IndexHandler.ashx?time={0}&action=deviceShowData&greenHouseSerialNum=00000F003G001"; ???????????string param = string.Format(loginp, name, pwd); ???????????exta.http h = new exta.http(); ???????????string r = h.HttpPost(url, param); ???????????if (r.Equals("0")) ???????????{ ???????????????hg = h.HttpGet(string.Format(urlget, DateTime.Now)); ???????????} ???????????return hg; ???????}

webclient类学习

原文地址:http://www.cnblogs.com/wangzhe688/p/7808634.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved