`
evan1234
  • 浏览: 30118 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

模拟在浏览器中添加自定义HTTP头信息

阅读更多

1、服务器端添加HTTP响应头信息

     在服务器端添加HTTP响应头信息通常很容易,比如在jsp中,直接通过response.addHeader(String key, String value)或者response.setHeader(String key, String value)方法添加, 像这样:

      response.setHeader("WasuStbId", "1234567890");

      response.addHeader("WasuUserNo", "1234567890-0987654321");

 

在linux环境下可以通过curl命令来验证,如:curl -I http://xxxx.xxxx.xxxx/xxx.jsp得到的结果为

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=B8F444E7C38BC5C6A4B6EC29780927F0; Path=/mailproxy
Last-Modified: Tue, 10 Feb 2009 02:12:11 GMT
Expires: Tue, 10 Feb 2009 02:12:21 GMT
WasuStbId: 1234567890
WasuUserNo: 1234567890-0987654321
Cache-Control: public
Pragma: Pragma
Content-Type: text/html
Content-Length: 5414
Date: Tue, 10 Feb 2009 02:12:11 GMT
 

2、在客户端添加HTTP自定义头信息

     两种方式模拟在HTTP请求中添加自定义HTTP头信息。

    a、先给出服务器端请求的jsp页面代码,用于展示上传的HTTP头信息;

<!--
获取HTTP请求头信息,打印出来.
-->

<%
  String userAgent =  request.getHeader("User-Agent");
  String ext =  request.getHeader("Ext");
  String wasuStbId =  request.getHeader("WasuStbId");
%>

10.0.85.125 --> a<br/>
User-Agent:<%=userAgent%><br/>
Ext:<%=ext%><br/>
WasuStbId:<%=wasuStbId%><br/>
 

    b、java方式

 

		try {
			URL url = new URL("http://10.0.86.233/jsptag.jsp");
			URLConnection urlConn = url.openConnection();
			
			urlConn.setDoOutput( true );  
			urlConn.setRequestProperty( "Accept", "*/*" );  
			urlConn.setRequestProperty( "Accept-Language", "java" );  
			urlConn.setRequestProperty( "Content-Type", "multipart/form-data" );  
			urlConn.setRequestProperty( "Accept-Encoding", "gzip, deflate" );  
			urlConn.setRequestProperty( "User-Agent", "wawawawawa" );
			urlConn.setRequestProperty( "Ext", "Ext12345;Ext09876;Ext13579;Ext08642" );
			urlConn.setRequestProperty( "WasuStbId", "1234567890;0987654321;1357908642" );
			urlConn.setRequestProperty( "Connection", "Keep-Alive" );
			urlConn.setRequestProperty( "Cache-Control", "no-cache" );  
			
			InputStream is = urlConn.getInputStream(); 
			BufferedInputStream bis = new BufferedInputStream(is);    
			ByteArrayOutputStream baos = new ByteArrayOutputStream();  
			int i = 0;  
			while((i = bis.read()) != -1){  
			      baos.write(i);  
			}  
			System.out.println(baos.toString());  
			bis.close();  
			is.close(); 
		} catch (Exception e) {
			e.printStackTrace();
		}

    需要引入的类:

import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

 

    c、直接socket方式

    直接在command模式下,比如在xp的cmd下面敲入下面代码:

 

c:\>telnet 10.0.86.233 80        #注意,是ip地址+空格+端口号
GET /jsptag.jsp HTTP/1.1          #GET全大写,空格+地址页面+空格+HTTP/1.1
Host: 10.0.86.233:80               #"Host:"+空格+"ip地址:端口号"
Wasu-Stb-Id: 1234567890       #自定义头信息,"key+空格+value".
Ext: 12345;67890                     #自定义头信息,"key+空格+value".
回车

#下面为得到的信息
HTTP/1.1 200 OK
Server: nginx/0.7.33
Date: Tue, 10 Feb 2009 02:15:25 GMT
Content-Type: text/html;charset=ISO
Connection: keep-alive
Set-Cookie: JSESSIONID=EFEF64D30F29
Content-Length: 115

10.0.85.125 --> c<br/>
User-Agent:wawawawa<br/>
Ext:Ext12345;Ext09876;Ext13579;Ext08642<br/>
WasuStbId:1234567890;0987654321;1357908642<br/>
Connection closed by foreign host.
分享到:
评论

相关推荐

    易语言自定义UA浏览器用于模拟访问(自定义ua的浏览器)

    最近遇到有些网页只能在VX等浏览器中显示,经查资料,发现有些插件可以实现自定义UA,chrome也有这样的功能,但还是感觉易里面实现更简单,只要调用精易Web浏览器,设置下UA就可以,软件里设置了很多浏览器的UA,...

    modHeaderGoogle插件

    modHeader是一款针对Google Chrome浏览器的插件,它允许用户自定义HTTP请求标头(header)以修改网络请求。通过该插件,用户可以轻松地更改请求的标头信息,例如添加、修改或删除标头字段。这些标头包括但不限于User-...

    站长万能助手 v1.8

    自定义登陆后的参数提交,随时调用传递 强大的界面自定义功能, 内置浏览器代理,自动模拟浏览器IE、FireFox、Android自带浏览器、UC浏览器提交 强大的参数自定义添加,无限参数添加,内部各个位置随时调用 可获取...

    模拟服务器:构建模拟服务器

    # 然后在浏览器中打开http: //localhost:8081/api/comment/get.action自定义的接口 npm run gulp 原理 在项目根目录新建mock文件夹,新建mock/db.js作为mock数据源, mock/server.js mock/routes.js作

    Chrome-JSON-View:一个自定义 JSON 查看器,用于模拟 Chrome 的开发工具 JSON 预览样式。 从 jsonv 分叉的初始版本

    jsonv JSON 查看器 Chrome 扩展程序和库。 有关更多信息,请参阅 。去做在右上角添加 RAW 和 Pretty 按钮以在美化和原始 JSON 视图之间切换。 模拟 Chrome 的 JSON 值预览。

    bpmn.js 2.0流程编辑器 搭配 Activiti 7.0 进行工作流编辑器集成开发

    BPMN 无处不在,适合所有人 在浏览器中创建、嵌入和扩展 BPMN 图。单独使用它或将其集成到您的应用...3. 集成浏览器内流程引擎、令牌模拟、自定义元素、样式或建模规则。这取决于您,因为 bpmn-js 是一个开放的工具包。

    IE WebBrowser编程技巧

    在WebBrowser窗口上模拟KeyBd_Event 在使用WebBrowser控件,先要 初始化和结束程序后要终止化(Initialization & Finalization) 自定义浏览器上下文菜单 自定义浏览器 C#中调用WebBrowser查看源文件的功能 -------...

    【运营版】彩虹云7.27免授权版任务挂机平台/彩虹秒赞网平台PHP

    自定义运行时间,自定义使用代理,自定义代理ip及端口号,自定义POST模拟,自定义POST数据,自定义来源地址,自定义模拟浏览器,暂停网络任务 3.完善的QQ管理系统:增加QQ账号管理,添加QQ任务更加快捷,一键更新失效的sid...

    PHP权限管理系统源码

    4、新建数据库think_rbac(可自定义数据库名称,然后在config/database.php文件中修改数据库配置),导入数据库文件think_rbac.sql; 5、使用浏览器(推荐chrome浏览器)访问:http://yourdomain.com/admin,默认...

    ASP.NET的网页代码模型及生命周期

    创建一个单文件页模型,在【文件】按钮中选择【新建文件】选项,在弹出对话框中选择【Web窗体】或在右击当前项目,在下拉菜单中选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    5.5.8 创建自定义HTTP模块 5.6 总结 第6章 状态管理 6.1 ASP.NET状态管理 6.2 视图状态 6.2.1 视图状态示例 6.2.2 在视图状态中保存对象 6.2.3 视图状态评估 6.2.4 有选择地禁用视图状态 6.2.5 ...

    在线考试系统V2017

    *增加 综合设置中添加整个系统的自动截取字符长度自定义功能。更适应各种分辨率屏幕。 *增加 在线批量导入添加excel导入功能,同时保留word,txt等文本批量导入功能,取消excel辅助工具。 *增加 管理员和分管理员也...

    ASP.NET4高级程序设计(第4版) 3/3

    5.5.8 创建自定义HTTP模块 174 5.6 总结 176 第6章 状态管理 177 6.1 ASP.NET状态管理 177 6.2 视图状态 179 6.2.1 视图状态示例 180 6.2.2 在视图状态中保存对象 181 6.2.3 视图状态评估 183 ...

    jQuery Tab 可关闭的网页选项卡特效.rar

    就像现在主流的163邮箱、QQ邮箱中的效果,模拟出了PC浏览器的效果,选项卡可以无限制增多,超出宽度会出现滚动条,本演示页面中包括了滑动式选项卡(滑动门)、标准选项卡、AJAX选项卡、动态添加TAB的选项卡等。...

Global site tag (gtag.js) - Google Analytics