httpwebrequest详解

Python网络编程:HTTP请求(requests模块) requests模块是一个用于发送HTTP请求的第三方库,其设计初衷是简化HTTP请求的发送和处理。与Python标准库中的urllib相比,requests提供了更直观和便捷的API,使开发者能够快速编写功能强大的HTTP客户端。1.1 安装requests模块在使用requests模块之前,需要先安装它。1.2 导入requests模块。 阅读详情

HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。它们支持一系列有用的属性。这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的。请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的。另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要。接下来调用 HttpWebRequest.GetResponse()方法返回的是一个HttpWebResponse对象。你可以把HTTP响应的数据流 (stream)绑定到一个StreamReader对象,然后就可以通过ReadToEnd()方法把整个HTTP响应作为一个字符串取回。也可以通过 StreamReader.ReadLine()方法逐行取回HTTP响应的内容。

这种技术展示了如何限制请求重定向(request redirections)的次数, 并且设置了一个超时限制。下面是HttpWebRequest的一些属性,这些属性对于轻量级的自动化测试程序是非常重要的。

l  AllowAutoRedirect:获取或设置一个值,该值指示请求是否应跟随重定向响应。

l  CookieContainer:获取或设置与此请求关联的cookie。

l  Credentials:获取或设置请求的身份验证信息。 

l  KeepAlive:获取或设置一个值,该值指示是否与 Internet 资源建立持久性连接。

l  MaximumAutomaticRedirections:获取或设置请求将跟随的重定向的最大数目。

l  Proxy:获取或设置请求的代理信息。

l  SendChunked:获取或设置一个值,该值指示是否将数据分段发送到 Internet 资源。

l  Timeout:获取或设置请求的超时值。

l  UserAgent:获取或设置 User-agent HTTP 标头的值

C# HttpWebRequest提交数据方式其实就是GET和POST两种,那么具体的实现以及操作注意事项是什么呢?那么本文就向你详细介绍C# HttpWebRequest提交数据方式的这两种利器。

C# HttpWebRequest提交数据方式学习之前我们先来看看什么是HttpWebRequest,它是 .net 基类库中的一个类,在命名空间 System.Net 下面,用来使用户通过HTTP协议和服务器交互。

C# HttpWebRequest的作用:

HttpWebRequest对HTTP协议进行了完整的封装,对HTTP协议中的 Header, Content, Cookie 都做了属性和方法的支持,很容易就能编写出一个模拟浏览器自动登录的程序。

C# HttpWebRequest提交数据方式:

程序使用HTTP协议和服务器交互主要是进行数据的提交,通常数据的提交是通过 GET 和 POST 两种方式来完成,下面对这两种方式进行一下说明:

C# HttpWebRequest提交数据方式1. GET 方式。

GET 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.google.com/webhp?hl=zh-CN 中,前面部分 http://www.google.com/webhp 表示数据提交的网址,后面部分 hl=zh-CN 表示附加的参数,其中 hl 表示一个键(key), zh-CN 表示这个键对应的值(value)。程序代码如下:

HttpWebRequest req =   

(HttpWebRequest) HttpWebRequest.Create(   

"http://www.google.com/webhp?hl=zh-CN" );  

req.Method = "GET";  

using (WebResponse wr = req.GetResponse())  

{  

   //在这里对接收到的页面内容进行处理  

} 

C# HttpWebRequest提交数据方式2. POST 方式。

POST 方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 GET 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。程序代码如下:

string param = "hl=zh-CN&newwindow=1";  

byte[] bs = Encoding.ASCII.GetBytes(param);  

HttpWebRequest req =   

(HttpWebRequest) HttpWebRequest.Create(   

"http://www.google.com/intl/zh-CN/" );  

req.Method = "POST";  

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

req.ContentLength = bs.Length;  

using (Stream reqStream = req.GetRequestStream())  

{  

   reqStream.Write(bs, 0, bs.Length);  

}  

using (WebResponse wr = req.GetResponse())  

{  

   //在这里对接收到的页面内容进行处理  

}  

在上面的代码中,我们访问了 www.google.com 的网址,分别以 GET 和 POST 方式提交了数据,并接收了返回的页面内容。然而,如果提交的参数中含有中文,那么这样的处理是不够的,需要对其进行编码,让对方网站能够识别。

C# HttpWebRequest提交数据方式3. 使用 GET 方式提交中文数据。

GET 方式通过在网络地址中附加参数来完成数据提交,对于中文的编码,常用的有 gb2312 和 utf8 两种,用 gb2312 方式编码访问的程序代码如下:

Encoding myEncoding = Encoding.GetEncoding("gb2312");  

string address = "http://www.baidu.com/s?"   

+ HttpUtility.UrlEncode("参数一", myEncoding) +  

 "=" + HttpUtility.UrlEncode("值一", myEncoding);  

HttpWebRequest req =   

(HttpWebRequest)HttpWebRequest.Create(address);  

req.Method = "GET";  

using (WebResponse wr = req.GetResponse())  

{  

   //在这里对接收到的页面内容进行处理  

}  

在上面的程序代码中,我们以 GET 方式访问了网址 http://www.baidu.com/s ,传递了参数“参数一=值一”,由于无法告知对方提交数据的编码类型,所以编码方式要以对方的网站为标准。常见的网站中, www.baidu.com (百度)的编码方式是 gb2312, www.google.com (谷歌)的编码方式是 utf8。

C# HttpWebRequest提交数据方式4. 使用 POST 方式提交中文数据。

POST 方式通过在页面内容中填写参数的方法来完成数据的提交,由于提交的参数中可以说明使用的编码方式,所以理论上能获得更大的兼容性。用 gb2312 方式编码访问的程序代码如下:

Encoding myEncoding = Encoding.GetEncoding("gb2312");  

string param =   

HttpUtility.UrlEncode("参数一", myEncoding) +   

"=" + HttpUtility.UrlEncode("值一", myEncoding) +   

"&" + HttpUtility.UrlEncode("参数二", myEncoding) +  

"=" + HttpUtility.UrlEncode("值二", myEncoding);  

byte[] postBytes = Encoding.ASCII.GetBytes(param);  

HttpWebRequest req = (HttpWebRequest)  

HttpWebRequest.Create( "http://www.baidu.com/s" );  

req.Method = "POST";  

req.ContentType =   

"application/x-www-form-urlencoded;charset=gb2312";  

req.ContentLength = postBytes.Length;  

using (Stream reqStream = req.GetRequestStream())  

{  

   reqStream.Write(bs, 0, bs.Length);  

}  

using (WebResponse wr = req.GetResponse())  

{  

   //在这里对接收到的页面内容进行处理  

}   

从上面的代码可以看出, POST 中文数据的时候,先使用 UrlEncode 方法将中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。

以上列出了客户端程序使用HTTP协议与服务器交互的情况,常用的是 GET 和 POST 方式。现在流行的 WebService 也是通过 HTTP 协议来交互的,使用的是 POST 方法。与以上稍有所不同的是, WebService 提交的数据内容和接收到的数据内容都是使用了 XML 方式编码。所以, HttpWebRequest 也可以使用在调用 WebService 的情况下。

C# HttpWebRequest提交数据方式的基本内容就向你介绍到这里,希望对你了解和学习C# HttpWebRequest提交数据方式有所帮助。

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

相关推荐

RFSoC应用XCZU47DR八发八收FPGA设计方案

本文介绍了基于Xilinx XCZU47DR RFSoC芯片的八发八收FPGA设计方案。该方案采用集成射频数据转换器的SoC架构,支持8路14bit ADC(5GSPS)和8路14bit DAC(9.85GSPS),可直接处理5GHz以下射频信号。硬件设计包含高性能输入缓冲器、QMC校正和复杂混频器,适用于5G/6G通信、雷达、卫星通信等领域。文章详细阐述了ADC/DAC子系统参数,包括通道配置、采样率、带宽等特性,并提供了FPGA顶层模块的硬件接口设计,展示了多通道数据收发处理能力。该方案无需外置混频器,

toonyhe的博客 1792

Python模拟HttpRequest的方法总结

Python可以说是爬网的利器,本文主要介绍了一些python来模拟http请求的一些方法和技巧。 Python处理请求的类库有两个,urllib,urllib2。 这两个类库并不是一个类库的两个不同版本,urllib主要用来处理一些url相关的内容,发送请求的时候,请求对象只能是一个url。urllib2可以用request对象来实现请求,这样就可以实现如伪造头部,设置代理,http ge...

weixin_30325793的博客 334

034、特定场景优化(一):小目标检测的改进策略合集

本文针对工业场景中的小目标检测难题,提出了一套实战优化方案。首先从数据层面建议保持高分辨率输入(1024-1280像素)或采用切块训练策略,并适当放大标注区域。在网络结构上,提出减少下采样次数、增加高分辨率检测头、引入空间注意力机制等改进。损失函数方面推荐使用NWD匹配和QFL损失提升小目标敏感度。部署环节强调NMS优化、分辨率对齐和量化处理技巧。最后总结核心经验:优先优化数据质量而非模型结构,标注一致性比算法更重要,同时需为实际部署预留性能余量。硬件升级有时比算法调优更经济有效。

xiaoyaohou11的博客 652

Python的Web请求:requests库入门与应用

requests本文介绍了requests库的基本用法和高级应用,包括GET和POST请求、请求头、错误处理、文件上传下载等操作。通过requests库,你可以轻松地完成Web数据采集、API集成、文件处理等任务,是Python开发者必备的工具之一。希望本教程能帮助你掌握requests库的使用,并灵活应用到实际项目中!

萧鼎的博客 957

1104全部报表版本号-银监会报表

G4B_Ⅲ(a)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第一档)》G4B_Ⅲ(b)X1《与非中央交易对手的证券融资交易对手信用风险违约风险计算表(权重法)(第一档)》G4B_Ⅲ(a1)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第二档)》Ⅲ(a)X2《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(现期风险暴露法)(第二档)》Ⅲ(a1)X1《与非中央交易对手的衍生具交易对手信用风险违约风险计算表(标准法)(第一档)》

数字化老司机 6300

C语言实现俄罗斯方块

使用C语言完成俄罗斯方块。《俄罗斯方块》的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,与此同时,玩家得到分数奖励。没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。顾名思义,俄罗斯方块自然是俄罗斯人发明的。

qq_54169998的博客 7万+

HttpWebRequest详解

Determining Whether the Device Is Connected Most network applications need to know whether the device is currently connected to the network. A well-designed mobile application allows the user to make

python二级题库 5046

AI代码标注专家Prompt指令的最佳实践

AI代码标注专家 Prompt 可作为项目级别提示词使用,专门负责为 AI 生成的代码添加特定的注释标记,然后基于 Node 脚本可以初步统计出 AI 代码占比。

💻 Code:TypeScript / Engineering 🤖 AI:Prompt Optimization / Context Memory / Coding Agents 616

Python入门自学进阶-Web框架——4、HttpRequest和HttpResponse及模板

HTTP请求中产生两个核心的对象: http请求:HttpRequest对象 http响应:HttpResponse对象 所在位置django.http,前边用的reques就是HttpRequest对象。 HttpRequest对象的属性: path:请求页面的全路径,不包括域名和端口method:请求中使用的HTTP方法的字符串表示,全大写表示,如POST、GET等GET:包含所有HTTP GET参数的类字典对象POST:包含所有HTTP POST参数的类字典对象。服务器收到空的POST请求的情况

kaoa000的专栏——非淡泊无以明志,非宁静无以致远 2578

【异常】Claude Code CLI工具 模型加载异常 /init报错排查与完整解决方案 There‘s an issue with the selected model (glm-5). It

此类跨厂商模型配置报错,核心诱因是API生态的兼容性不匹配。优先使用工具原生支持的模型体系,可快速解决90%以上的同类报错;若需跨厂商使用目标模型,需完成API端点、鉴权密钥、模型ID的全链路适配,确保全流程配置合规,即可完成异常修复。

奶爸的编程之路,也就一周冷个三天 3705

基于STM32L4XX、HAL库的ICM-42607-P姿态传感器驱动程序设计

/ 转换为dps(±1000dps量程)float accel_x = sensor_data.accel_x * (8.0f / 32768.0f);// 转换为g值(±8g量程)#define ICM42607_I2C_ADDR 0x68 << 1 // I2C地址(SA0=0)= 0x40) { // ICM-42607的WHO_AM_I值为0x40。// 读取传感器数据。

zhusl6688的博客 835

C#中HttpWebRequest的用法详解

HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择。它们支持一系列有用的属性。这两个类位 于System.Net命名空间,默认情况下这个类对于控制台程序来说是可访问的。请注意,HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的。另外,你可...

主宰 9万+

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2410

HttpWebRequest属性详解

HttpWebRequest属性详解 HttpWebRequest继承自WebRequest,HttpWebRequest的主要属性有: 1. public String Accept:指定客户端能够接收的内容类型,可以设置的主要类型如下: ...

514

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

关于C#中HttpWebRequest的用法详解

1、Httpwebrequest是用于发送Http数据 httpwebresponse用于接收http数据 2、这两个类位 于System.Net命名空间 3、HttpWebRequest对象不是利用new关键字通过构 造函数来创建的,而是利用工厂机制(factory mechanism)通过Create()方法来创建的 4、另外,你可能预计需要显式地调用一个“Send”方法,实际上不需要。接下来...

weixin_40193469的博客 2844

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

HttpWebRequest类详解

HttpWebRequest类与HttpRequest类的区别。       HttpRequest类的对象用于服务器端,获取客户端传来的请求的信息,包括HTTP报文传送过来的所有信息。而HttpWebRequest用于客户端,拼接请求的HTTP报文并发送等。       HttpWebRequest这个类非常强大,强大的地方在于它封装了几乎HTTP请求报文里需要用到的东西,以致于能够能够发送任意...

有梦想的菜鸟 6499

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: .net后台POST传值
下一篇: C#实现所有经典排序算法
mx5721
博客等级 码龄17年 24粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值