C# Get和Post获取和请求页面信息(HttpWebRequest 、WebClient、HttpClient)

C# 带参访问接口,WebClient方式 1、当参数的数据较大时。WebClient同步。2、当参数的数据较大时。WebClient异步(接上面的代码)。3、当参数的数据正常时4、超时时间设置5、WebRequest方式 1、当参数的数据较大时。WebClient同步。 //实例化WebClient client = new WebClient();//地址 string path = "http://127. 阅读详情

主要用两个方式进行Post HttpWebRespose 和WebClient post url及相关参数获取内容信息

WebClient 使用:

/// <summary>
    /// 多次调用Post请求返回 HTML信息	通过关一点通用
    /// </summary>
    /// <param name="url"></param>
    /// <param name="postString"></param>
    /// <returns></returns>
    public static string HttpAspxPostHtmlInfo(string url, string postString)
    {
      byte[] postData = Encoding.UTF8.GetBytes(postString);//编码,事先要看下抓取网页的编码方式  
      WebClient webClient = new WebClient();
      webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//采取POST方式必须加的header,如果改为GET方式的话就去掉这句话即可  
      byte[] responseData = webClient.UploadData(url, "POST", postData);//得到返回字符流  
      var retString = Encoding.UTF8.GetString(responseData);//解码返回请求的html 内容
      return retString;

    }

 HttpWebReqest 使用:

 /// <summary>
    /// ASP 页面POST请求与获取结果
    /// </summary>
    /// <param name="Url">posturl</param>
    /// <param name="postDataStr">post参数</param>
    /// <param name="encoding">页面编码</param>
    /// <returns></returns>
    public static string HttpAspPostMathHtml(string Url, string postDataStr, string encoding)
    {
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
      request.Method = "POST";
      request.Accept = "text/html, application/xhtml+xml, image/jxr, */*";
      request.ContentType = "application/x-www-form-urlencoded";
      request.KeepAlive = true;
      request.Headers.Add("Accept-Language", "zh-Hans-CN,zh-Hans;q=0.7,ja;q=0.3");
      request.Headers.Add("Accept-Encoding", "gzip, deflate");
      request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";
      byte[] bytes = System.Text.Encoding.Default.GetBytes(postDataStr);
      request.ContentLength = bytes.Length;
      Stream stream = request.GetRequestStream();
      stream.Write(bytes, 0, bytes.Length);
      stream.Close();//以上是POST数据的写入

      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      var retString = string.Empty;
      using (Stream responsestream = response.GetResponseStream())
      {
        using (StreamReader sr = new StreamReader(responsestream, System.Text.Encoding.GetEncoding(encoding)))
        {
          retString = sr.ReadToEnd();
        }
      }
      var resultStr = Regex.Matches(DelHTML(retString), @"(?is)<body[^>]*?>([\s\S].*?)</body>")
                                      .Cast<Match>().Select(mx => mx.Groups[0].Value.TrimStart().TrimEnd()).ToList();
      return resultStr[0].ToString();
    }

    /// <summary>
    /// ASP 页面Get请求与获取结果
    /// </summary>
    /// <param name="Url">posturl</param>
    /// <param name="postDataStr">post参数</param>
    /// <param name="encoding">页面编码</param>
    /// <returns></returns>
    public static string HttpAspGetMathHtml(string Url, string postDataStr, string encoding)
    {
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + "?" + postDataStr);
      request.Method = "Get";
      request.Accept = "text/html, application/xhtml+xml, image/jxr, */*";
      request.KeepAlive = true;
      request.Headers.Add("Accept-Language", "zh-Hans-CN,zh-Hans;q=0.7,ja;q=0.3");
      request.Headers.Add("Accept-Encoding", "gzip, deflate");
      request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko";

      HttpWebResponse response = (HttpWebResponse)request.GetResponse();
      var retString = string.Empty;
      using (Stream responsestream = response.GetResponseStream())
      {
        using (StreamReader sr = new StreamReader(responsestream, System.Text.Encoding.GetEncoding(encoding)))
        {
          retString = sr.ReadToEnd();
        }
      }
      return retString;
    }

HttpClient 使用

 /// <summary>
    /// ASPX页面POST请求与获取结果
    /// </summary>
    /// <param name="Url"></param>
    /// <param name="postDataStr"></param>
    /// <returns></returns>
    public static string HttpAspxPostMathHtml(string Url, List<KeyValuePair<String, String>> postDataStr)
    {
      var retString = string.Empty;
      HttpClient httpClient = new HttpClient();
      HttpResponseMessage response = httpClient.GetAsync(new Uri(Url)).Result;
      response = httpClient.PostAsync(new Uri(Url), new FormUrlEncodedContent(postDataStr)).Result;
      retString = response.Content.ReadAsStringAsync().Result;

      var resultStr = Regex.Matches(DelHTML(retString), @"(?is)<body[^>]*?>([\s\S].*?)</body>")
                                      .Cast<Match>().Select(mx => mx.Groups[0].Value.TrimStart().TrimEnd()).ToList();
      //用完要记得释放
      httpClient.Dispose();
      return resultStr[0].ToString();
    }


 

HttpAspPostMathHtml 使用方法:

  var sPuci = HttpAspPostMathHtml("http://www.xx.com/search/index_dt_container.asp", "search=true&companyname=
&companycode=&container_no=&bill_no=" + strBlNo + "&btn3.x=39&btn3.y=15", "gb2312");

HttpAspxPostHtmlInfo使用方法:

HttpAspxPostHtmlInfo("http://www.xx.com/search/index_dt_container.asp", "search=true&companyname=
&companycode=&container_no=&bill_no=" + strBlNo + "&btn3.x=39&btn3.y=15");
HttpAspGetMathHtml使用方法:
HttpAspGetMathHtml("http://2.22.96.22/query/search_bl_no.asp", "BL_NO1=" + strBlNo + "&submit1=%B2%E9%D1%AF", "gb2312"); 
C# 向服务器发送请求(几种方式Get,Post)的全面指南 本文介绍了在C#中发送HTTP请求的三种主要方法:WebClient、HttpClient和HttpWebRequest。WebClient适合简单操作但功能有限;HttpClient是现代推荐方案,支持异步和高级配置;HttpWebRequest提供底层控制但使用复杂。文章包含各类请求的代码示例、优缺点对比以及Mermaid类图展示组件关系,帮助开发者根据需求选择合适的HTTP客户端实现方式。 阅读详情

相关推荐

C# HttpWebRequest详解

一.前言 HttpWebRequest是C#原生语法提供的实现了Http协议完整封装的类,可以实现任意类型的Http请求。但是也因为参数众多,导致很多人不容易掌握它。 今天我们来尝试从简入繁的给大家介绍下HttpWebRequest 二.常用属性 AllowAutoRedirect:获取或设置一个值,该值指示请求是否应跟随重定向响应。 CookieContainer:获取或设置与此请求关联的cookie。 Credentials:获取或设置请求的身份验证信息。 KeepAlive:获取或设置

TxNet 3万+

C# 使用webClient 发送get或者post请求

C# 发送get和post 请求有好几种方法 (1)利用HttpWebRequest 、HttpWebResponse 这一对来写代码【最原始的,有很有用的】 (2)利用 WebClient 发送【其实内在还是用到了上面的一对,只是微软封装了一层,简单些】 (3)利用 HttpClient发送【这个是 net framework4.6以后推荐的,对异步编程更友善】 我这里看了msdn之后,用webClient写了一个方法,经常用,简单点。 https://docs.microsoft....

罗汉松驻扎的工作基地 5954

Silvaco TCAD仿真例库——肖特基二极管正向特性(例子)

此示例演示了肖特基二极管正向特性的仿真。 展示了: 使用 Atlas 语法形成二极管结构 设置阳极的肖特基势垒高度 正向偏置阳极 代码 第一部分:描述设备 mesh(网格) electrodes locations(电极位置) doping distribution(掺杂分布) 这是位于结构左侧和右侧的,2维n型器件,具有重掺杂浮动 p 型保护环区域, (2D n-type device with heavily doped floating p-type guard ring regio.

weixin_41788560的博客 2万+

C# WebClient Get获取网页内容

//不知道怎么删除,只好留着 1. Get方式: WebClient web = new WebClient(); var html = web.DownloadString(url); 2. Post方式 1 /// <summary> 2 /// 3 /// </summary>...

weixin_30726161的博客 2137

MAX96717实战:如何选择Host-to-Peripheral和Pass-Through I2C模式?附配置代码

本文深入解析MAX96717芯片的两种关键I2C模式:Host-to-Peripheral与Pass-Through。通过对比其核心差异、硬件连接考量及软件配置代码,为嵌入式开发者提供了清晰的模式选择策略与实战指南,帮助优化系统设计并避免常见通信故障。

weixin_29190573的博客 462

数字后端流程--place

Floorplan完成后芯片的大致框架已经出现,万里长征已经迈出特别重要的第一步了,前面的步骤我们已经完成了io port,macro的摆放,现在core外只剩下std cell(标准单元)了,Place这一步就是要把std cell放进core里。看到密密麻麻的std cell也不用紧张,因为放std cell不用像macro手动一个一个摆,工具就可以帮我们完成大部分工作。虽然这一步的工作只有一个,但也不是只要Place完就能进行下一步的,衡量Place质量是否满足标准会通过以下几点判断。

qq_68400574的博客 772

C#中HttpWebRequest、WebClient、HttpClient的使用详解

命名空间System.Net,WebClient是一种更高级别的抽象,是HttpWebRequest为了简化最常见任务而创建的,使用过程中你会发现他缺少基本的header,timeoust的设置,不过这些可以通过继承httpwebrequest来实现。相对来说,WebClient比WebRequest更加简单,它相当于封装了request和response方法,不过需要说明的是,Webclient和WebRequest继承的是不同类,两者在继承上没有任何关系。单例创建步骤:1、定义静态私有对象;

kalvin_y_liu的博客 6115

RT-Thread Studio使用笔记(四):带片外Flash(W25Q128)的OTA(YModem)

前言 在学习OTA之前,请先参考上两篇博客写的关于SPI设备及W25Q128的使用方法,传送门: https://blog.youkuaiyun.com/tigerots/article/details/107423633 https://blog.youkuaiyun.com/tigerots/article/details/107933991 如何使用OTA 一. 制作BootLoader 打开Bootloader 在线获取地址,注册,并根据RT-thread官方文档生成BootLoader,官方文档已经写的很清楚,再此

tigerots的专栏 4008

c#:HttpClient使用详解

环境: window10 vs2019 .netcore 3.1 centos 7.6 一、在c#中发送http请求的方式 本部分参考:《WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择》 使用.net 平台原生提供的HttpWebRequest、WebClient和HttpClient。 使用开源的工具,如:RestSharp、Flurl。 在.net core平台下已经不推荐使用HttpWebRequest、WebClient方式了

火焰 7万+

app逆向分析案例-95分

先把justtrusmeplus打开设置好95分,开始抓包,得到结果为: https://www.95fenapp.com/api_goods/list/v3.0?is_all=1&keywords=%E7%A7%91%E6%AF%94& page=1&page_size=20 &publish_timestamp=0 &scene=2&scene_type=95fen_android_search_personal&sn=SearchList

weixin_41763171的博客 2743

Greenplum基础

CREATE DATABASE 是 SQL 命令,用于创建一个新的数据库。name 是你要创建的数据库的名称。这个名称是必须的,并且在同一个数据库服务器上必须是唯一的。可选项,OWNER 指定了新数据库的所有者,如果未指定,新数据库的所有者默认是执行该命令的用户。dbowner 是数据库所有者的用户名。可选项,TEMPLATE 指定了用于创建新数据库的模板。在 PostgreSQL 和 GreenPlum 中,通常有一个名为 template1 的默认模板。如果不指定,就会使用这个默认模板。

m0_57697768的博客 1206

C#-WebClient

using ( var wc = new System.Net.WebClient() ) { var imagebytes = wc.DownloadData( hag.ImagePath ); using ( MemoryStream ms = new MemoryStream( imagebytes ) ) { picImage.Image = Image....

cxu123321的博客 6690

2. Android_逆向的历史与发展

学完本节,希望你能够:了解 Android 逆向工程的发展历程,从早期 APK 破解到现代应用保护;入门先把这几类「在干啥」搞清楚,后面学脱壳、反反调试会顺很多。(反编译 APK 得到的类汇编代码,相当于程序的「菜谱」)就能绕过验证,到后来混淆、加固、反调试一起上,逆向难度越来越高。(第三节 什么是 CPU 指令集),帮你搞清楚「反汇编看到的那些指令」是从哪来的、和 Android 逆向有啥关系。有必要——先搞清「没加固时怎么玩」,再学脱壳和对抗,思路才顺。读起来费劲,但逻辑还在,耐心一点还能跟。

长沙火山 1391

.NET/C#发起GET和POST请求的几种方法

.NET/C#发起GET和POST请求的几种方法 第一种:HttpWebRequest using System.Net; GET: var request = (HttpWebRequest)WebRequest.Create("http://www.leadnt.com/recepticle.aspx"); var response = (HttpWebResponse)request.Ge...

qq_39111577的博客 2920

【保姆级教程】基于UNet++&MobileNetv3的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv3作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 256

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C#中HttpWebRequest、WebClient、HttpClient 、HttpClientFactory Flurl、的使用总结

三者的区别 HttpWebRequest 命名空间: System.Net,这是.NET创建者最初开发用于使用HTTP请求的标准类。使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts, cookies, headers, protocols。另一个好处是HttpWebRequest类不会阻塞UI线程。例如,当您从响应很慢的API服务器下载大文件时,您的应用程序的UI不会停止响应。HttpWebRequest通常和WebResponse一起使用,一个发送请求,一个获

小倪粑粑的BLOG 2158

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C#发送Get/Post请求的3种方式

1、使用HttpClient发送Get请求 // asp.net发送请求前必须设置:SecurityProtocol ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolT...

wangnanofspirit的博客 2164

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

[转]C#中HttpWebRequest、WebClient、HttpClient的使用详解

HttpWebRequest: 命名空间: System.Net,这是.NET创建者最初开发用于使用HTTP请求的标准类。使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts, cookies, headers, protocols。另一个好处是HttpWebRequest类不会阻塞UI线程。例如,当您从响应很慢的API服务器下载大文件时,您的应用程序的...

一个记录自己技术成长的博客 1597

【C# 功能总结 13】 WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择 及C#,java代码示例

选择合适的 HTTP 客户端取决于具体需求,包括请求的复杂性、是否需要异步操作以及对高级功能的需求。之间的区别与抉择的详细讲解,并附带 C# 和 Java 代码示例。

u010117029的博客 1393

HttpClient替换HttpWebRequest--以GET和POST请求为例说明

首先说一下HttpRequest、WebClient和HttpClient的关系:HttpRequest是基层的请求方式,WebClient是对HttpRequest的简化封装,在WebClient中有对HttpRequest的默认设置;HttpClient是重写的请求方式,相对于HttpRequest更简单实现异步请求,是.NetCore中更推崇的方式。 说明:以下代码中 在GetA...

aidx48924的博客 746

C#中HttpWebRequest、WebClient、HttpClient的使用

www hhhw //POST方法 public static string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Me...

LongtengGensSupreme博客 690

C# API POST与GET的调用

WebClient与HttpWebRequest HttpClient没测试

qq1084517825的博客 1466
上一篇: Jquery.city-picker 实现省市区三级联动
下一篇: C# 获取aspx页面中所有隐藏控件的两种方法
蝶恋花雨
博客等级 码龄21年 1290粉丝 147原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值