`
evan1234
  • 浏览: 30529 次
  • 性别: 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,...

    c#模拟浏览器请求

    在C#编程中,模拟浏览器请求是一项常见的任务,主要用于测试API接口、自动化脚本或爬虫等场景。本文将深入探讨如何使用C#编写控制台程序来模拟浏览器发送HTTP请求,以及实现请求流程的自动化。 首先,我们需要了解...

    修改/增加chrom浏览器请求头

    在实际操作中,要修改Chrome浏览器的请求头,可以使用如ModHeader这样的扩展,也可以借助开发者工具(DevTools)的Network面板手动添加或修改请求头。对于开发者而言,掌握这些技巧对于优化网页加载、排查网络问题、...

    php 模拟浏览器请求网页见容

    总的来说,PHP模拟浏览器请求网页内容是一项基础但实用的技术,它允许开发者在无需浏览器的情况下获取网络资源,极大地拓展了PHP在Web开发中的应用范围。理解并掌握这些方法,将有助于你在实际项目中更高效地获取和...

    仿苹果Safari浏览器选项卡自定义TabControl控件.7z

    在本文中,我们将深入探讨如何使用C#编程语言和.NET框架来实现一个仿苹果Safari浏览器的选项卡式用户界面(TabControl控件)的自定义美化。首先,我们需要理解TabControl控件是Windows Forms应用程序中常用的一种...

    HttpClient模拟http浏览器请求

    这个库广泛应用于Web服务调用、API接口测试以及自动化脚本中,因为它可以模拟浏览器的行为,进行GET、POST等复杂的HTTP请求。 在Java编程中,HttpClient提供了一个强大的API,允许我们创建自定义的HTTP请求,设置...

    Cordova添加自定义插件Demo

    Cordova添加自定义插件是移动应用开发中的一个重要环节,特别是在使用Cordova框架构建混合应用时。Cordova允许开发者利用Web技术(HTML、CSS、JavaScript)来构建原生的移动应用,而自定义插件则提供了与设备底层...

    仿苹果Safari浏览器选项卡自定义TabControl控件_tabcontrol_safari_

    在Windows应用程序开发中,TabControl控件是一个常用的组件,它允许用户在不同的选项卡之间切换,显示不同的内容。本文将深入探讨如何仿照苹果Safari浏览器的样式,自定义一个TabControl控件,使其具有类似Safari的...

    PHPcurl模拟IP浏览器请求

    **二、模拟浏览器信息** 在cURL中,我们可以使用`curl_setopt()`函数设置请求头,以模拟不同浏览器的请求。例如,要模仿Chrome浏览器的请求,我们可以这样设置: ```php curl_setopt($ch, CURLOPT_USERAGENT, '...

    C# winform利用cefsharp组件 自制简易Chrome内核浏览器

    在本文中,我们将深入探讨如何使用C# WinForm结合CEFSharp组件来构建一个基于Chrome内核的简单浏览器。CEFSharp是一个强大的开源库,它允许开发者将Chromium内核集成到.NET应用程序中,使得我们能够在Windows应用...

    fiddler中文版,可自定义规则

    - **自定义会话属性**:可以为每个HTTP会话添加自定义的标签或属性,便于后期的过滤和分析。 3. **在前端测试中的应用**: - **模拟不同的网络环境**:Fiddler可以帮助前端开发者模拟各种网络状况,如慢速网络、...

    JScrollPane中 - 全身自定义滚动 点击查看 浏览器内置滚动样式

    标题"JScrollPane中 - 全身自定义滚动 点击查看 浏览器内置滚动样式"表明我们将探讨如何在`JScrollPane`中实现全自定义滚动条,并模拟浏览器内置的滚动样式。 在Java中,我们可以使用`BasicScrollBarUI`或`...

    使用CListCtrl模拟文件浏览器

    在 OnInitDialog() 函数中,设置CListCtrl的视图模式(例如,LVS_REPORT),并可能添加列头,表示文件名、大小、类型等信息。 5. **加载文件和目录**: 实现一个函数,如`LoadFileSystem()`,遍历指定路径下的...

    div模拟select自定义下拉列表框(jQuery)

    在网页开发中,有时我们需要对默认的HTML元素进行自定义样式和交互效果的增强,以满足特定的设计需求或用户体验。`div模拟select自定义下拉列表框`是一种常见做法,它利用JavaScript(如jQuery)和CSS来实现,可以...

    模拟浏览器,实现tabpage关闭按钮 代码

    在VB.NET编程环境中,开发一个具有自定义功能的模拟浏览器是一项常见的任务,特别是当需要对TabPage控件进行扩展以实现类似浏览器的行为时。在这个场景中,我们要关注两个主要的知识点:在TabPage上添加和绘制关闭...

    使用Silverlight5 在vs2010平台上设计OOB模拟浏览器访问网页

    在Visual Studio 2010这个强大的集成开发环境中,我们可以利用Silverlight 5来实现一些创新的设计,例如模拟浏览器功能。 本项目主要探讨的是如何在Visual Studio 2010中利用Silverlight 5创建一个Out-of-Browser...

    google浏览器添加IE内核教程

    ### Google浏览器添加IE内核教程:提升浏览兼容性与便捷性 #### 一、引言 随着互联网技术的不断进步,浏览器作为用户访问网络的重要工具,其功能与性能的优化日益受到重视。Google浏览器(Chrome)凭借其快速、...

    Loadrunner负载测试 浏览器缓存设置

    这时可以使用`web_add_header()`函数来添加自定义的HTTP头,如`Cache-Control`、`Pragma`和`Expires`,以控制资源的缓存行为。 5. **清理缓存**:在测试的不同阶段,可能需要清除缓存以模拟用户清空缓存后的行为。...

    js模拟windows系统自定义多级右键菜单

    在JavaScript编程中,模拟Windows系统的多级右键菜单是一项实用的技术,它能让用户在网页上获得与操作系统类似的交互体验。这种技术主要应用于增强网站的用户体验,尤其是对于那些需要提供复杂操作选项的网页应用来...

    Http请求模拟报文返回工具

    在IT行业中,Http请求模拟报文返回工具扮演着重要的角色。它允许开发者和测试人员在不依赖实际服务器的情况下,模拟HTTP响应,进行功能验证、性能测试或者异常情况的模拟。这种工具极大地提高了开发效率,降低了测试...

Global site tag (gtag.js) - Google Analytics