模拟HTTP协议接收请求并返回信息

private string HttpPost(string Url, string postDataStr)        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);            request.Method = "POST";            request.ContentType = "application/x-www-form-urlencoded";            request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);            request.CookieContainer = cookie;            Stream myRequestStream = request.GetRequestStream();            StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));            myStreamWriter.Write(postDataStr);            myStreamWriter.Close();

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

response.Cookies = cookie.GetCookies(response.ResponseUri);            Stream myResponseStream = response.GetResponseStream();            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));            string retString = myStreamReader.ReadToEnd();            myStreamReader.Close();            myResponseStream.Close();

return retString;        }

public string HttpGet(string Url, string postDataStr)        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);            request.Method = "GET";            request.ContentType = "text/html;charset=UTF-8";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();            Stream myResponseStream = response.GetResponseStream();            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));            string retString = myStreamReader.ReadToEnd();            myStreamReader.Close();            myResponseStream.Close();

return retString;        }在post的时候有时也用的到cookie,像登录163发邮件时候就需要发送cookie,所以在外部一个cookie属性随时保存 CookieContainer cookie = new CookieContainer();!注意:有时候请求会重定向,但就需要从重定向url获取东西,像QQ登录成功后获取sid,但上面的会自动根据重定向地址跳转。可以用:request.AllowAutoRedirect = false;设置重定向禁用,你就可以从headers的Location属性中获取重定向地址
时间: 2024-08-03 13:48:06

模拟HTTP协议接收请求并返回信息的相关文章

使用httperrequest,模拟发送及接收Json请求

使用httpreques\Json-Handle\tcpdump\wireshark工具进行,抓取手机访问网络的包,分析request及response请求,通过httprequester来实现模拟发包及接收. 对于手机开发,分析手机访问网络数据,十分必要! 1.使用tcpdump包抓取网络数据包,手机要root,抓取过程请看: 1. 手机要有root权限 2. 下载tcpdump http://www.strazzere.com/android/tcpdump 3. adb push c:\w

使用firefox插件httperrequest,模拟发送及接收Json请求 【转】

转自[http://blog.csdn.net/feixue1232/article/details/8535212] 目标:使用httpreques\Json-Handle\tcpdump\wireshark工具进行,抓取手机访问网络的包,分析request及response请求,通过httprequester来实现模拟发包及接收. 对于手机开发,分析手机访问网络数据,十分必要! 1.使用tcpdump包抓取网络数据包,手机要root,抓取过程请看:http://blog.csdn.net/f

ping命令基于ICMP协议的返回信息分析

Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中 Ping 是一个十分好用的 TCP/IP 工具.它主要的功能是用来检测网络的连通情况和分析网络速度.可以利用 PING 命令检查网络连通状态,ping命令是基于ICMP. 这里先介绍ICMP.ICMP是网络层协议,一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通:但是IP协议并不提供可靠传输.如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因.所以我们就需要一种协议来完成这样的功能–ICMP协议 1.ICM

模拟HTTP请求的返回&shell写cgi

测试中偶尔会有这样的需求:1.需要访问外网的cgi或链接地址,但访问不通2.需要构造cgi特定的返回,但正常情况下难以构造为了获得想要的结果,此时可以模拟http请求的返回满足测试需要 æ

JS请求服务器,并返回信息,请求过程中不需要跳转页面

js请求服务器,并返回信息,请求过程中不需要跳转页面 这个可以通过jQuery框架轻松实现,jQuery中包含多种ajax的请求方式,详细可以参考下对应 的API. 你上面定义的按钮类型是submit,如果是在form当中,将会自动提交当前form表单,建议,如果可能的话将其修改为button类型. 下面给出通过jQuery的$.post方式,异步获取服务器的JSON数据. 功能代码: <script type="text/javascript"> $(function()

HTTP协议及其请求头分析

众所周知,Internet的基本协议是TCP/IP协议,目前广泛采用的FTP.Archie Gopher等是建立在TCP/IP协议之上的应用层协议,不同的协议对应着不同的应用.  WWW服务器使用的主要协议是HTTP协议,即超文体传输协议.由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用 户在统一的界面下,采用不同的协议访问不同的服务,如FTP.Archie.SMTP.NNTP等.另外,HTTP协议还可用于名字服务器和分布式对象管 理.  HTTP的早期版本为HT

浅析HTTP中POST和GET区别并用Python模拟其响应和请求

最近在几周在做手游崩溃信息收集和上传,拿到崩溃信息后,使用的是HTTP的POST方法上传到公司共用的服务器的,因此做简单总结.本文首先简单介绍了HTTP协议,主要说明了POST方法和GET方法的区别:然后用Python实现了 对POST方法和GET方法的响应:最后用Python模拟了POST方法和GET方法的请求. HTTP协议简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写,简单来说它是一个应用层的协议,它允许将超文本标记语言(HTML)文档从W

http协议头文件的控制信息(转)

通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成.HTTP的头域包括通用头,请求头,响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成.域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符. 通用头域 通用头域包含请求和响应消息都支持的头域,通用头域包含Cache-Control.Connection.Da

【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP请求信息由3部分组成: 1.请求方法(GET/POST) URI 协议/版本 2.请求头(Request Header) 3.请求正文 下面我们来分析一个http请求: POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP