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.
分享到:
相关推荐
最近遇到有些网页只能在VX等浏览器中显示,经查资料,发现有些插件可以实现自定义UA,chrome也有这样的功能,但还是感觉易里面实现更简单,只要调用精易Web浏览器,设置下UA就可以,软件里设置了很多浏览器的UA,...
在C#编程中,模拟浏览器请求是一项常见的任务,主要用于测试API接口、自动化脚本或爬虫等场景。本文将深入探讨如何使用C#编写控制台程序来模拟浏览器发送HTTP请求,以及实现请求流程的自动化。 首先,我们需要了解...
在实际操作中,要修改Chrome浏览器的请求头,可以使用如ModHeader这样的扩展,也可以借助开发者工具(DevTools)的Network面板手动添加或修改请求头。对于开发者而言,掌握这些技巧对于优化网页加载、排查网络问题、...
总的来说,PHP模拟浏览器请求网页内容是一项基础但实用的技术,它允许开发者在无需浏览器的情况下获取网络资源,极大地拓展了PHP在Web开发中的应用范围。理解并掌握这些方法,将有助于你在实际项目中更高效地获取和...
在本文中,我们将深入探讨如何使用C#编程语言和.NET框架来实现一个仿苹果Safari浏览器的选项卡式用户界面(TabControl控件)的自定义美化。首先,我们需要理解TabControl控件是Windows Forms应用程序中常用的一种...
这个库广泛应用于Web服务调用、API接口测试以及自动化脚本中,因为它可以模拟浏览器的行为,进行GET、POST等复杂的HTTP请求。 在Java编程中,HttpClient提供了一个强大的API,允许我们创建自定义的HTTP请求,设置...
Cordova添加自定义插件是移动应用开发中的一个重要环节,特别是在使用Cordova框架构建混合应用时。Cordova允许开发者利用Web技术(HTML、CSS、JavaScript)来构建原生的移动应用,而自定义插件则提供了与设备底层...
在Windows应用程序开发中,TabControl控件是一个常用的组件,它允许用户在不同的选项卡之间切换,显示不同的内容。本文将深入探讨如何仿照苹果Safari浏览器的样式,自定义一个TabControl控件,使其具有类似Safari的...
**二、模拟浏览器信息** 在cURL中,我们可以使用`curl_setopt()`函数设置请求头,以模拟不同浏览器的请求。例如,要模仿Chrome浏览器的请求,我们可以这样设置: ```php curl_setopt($ch, CURLOPT_USERAGENT, '...
在本文中,我们将深入探讨如何使用C# WinForm结合CEFSharp组件来构建一个基于Chrome内核的简单浏览器。CEFSharp是一个强大的开源库,它允许开发者将Chromium内核集成到.NET应用程序中,使得我们能够在Windows应用...
- **自定义会话属性**:可以为每个HTTP会话添加自定义的标签或属性,便于后期的过滤和分析。 3. **在前端测试中的应用**: - **模拟不同的网络环境**:Fiddler可以帮助前端开发者模拟各种网络状况,如慢速网络、...
标题"JScrollPane中 - 全身自定义滚动 点击查看 浏览器内置滚动样式"表明我们将探讨如何在`JScrollPane`中实现全自定义滚动条,并模拟浏览器内置的滚动样式。 在Java中,我们可以使用`BasicScrollBarUI`或`...
在 OnInitDialog() 函数中,设置CListCtrl的视图模式(例如,LVS_REPORT),并可能添加列头,表示文件名、大小、类型等信息。 5. **加载文件和目录**: 实现一个函数,如`LoadFileSystem()`,遍历指定路径下的...
在网页开发中,有时我们需要对默认的HTML元素进行自定义样式和交互效果的增强,以满足特定的设计需求或用户体验。`div模拟select自定义下拉列表框`是一种常见做法,它利用JavaScript(如jQuery)和CSS来实现,可以...
在VB.NET编程环境中,开发一个具有自定义功能的模拟浏览器是一项常见的任务,特别是当需要对TabPage控件进行扩展以实现类似浏览器的行为时。在这个场景中,我们要关注两个主要的知识点:在TabPage上添加和绘制关闭...
在Visual Studio 2010这个强大的集成开发环境中,我们可以利用Silverlight 5来实现一些创新的设计,例如模拟浏览器功能。 本项目主要探讨的是如何在Visual Studio 2010中利用Silverlight 5创建一个Out-of-Browser...
### Google浏览器添加IE内核教程:提升浏览兼容性与便捷性 #### 一、引言 随着互联网技术的不断进步,浏览器作为用户访问网络的重要工具,其功能与性能的优化日益受到重视。Google浏览器(Chrome)凭借其快速、...
这时可以使用`web_add_header()`函数来添加自定义的HTTP头,如`Cache-Control`、`Pragma`和`Expires`,以控制资源的缓存行为。 5. **清理缓存**:在测试的不同阶段,可能需要清除缓存以模拟用户清空缓存后的行为。...
在JavaScript编程中,模拟Windows系统的多级右键菜单是一项实用的技术,它能让用户在网页上获得与操作系统类似的交互体验。这种技术主要应用于增强网站的用户体验,尤其是对于那些需要提供复杂操作选项的网页应用来...
在IT行业中,Http请求模拟报文返回工具扮演着重要的角色。它允许开发者和测试人员在不依赖实际服务器的情况下,模拟HTTP响应,进行功能验证、性能测试或者异常情况的模拟。这种工具极大地提高了开发效率,降低了测试...