通过executeMethod方法打开服务器对应的方法,相当于往某地方送信
本文参考:
http://blog.sina.com.cn/s/blog_9ed7f0d70101i8op.html
http://www.cnblogs.com/cnryb/archive/2013/06/27/3158027.html
HttpClient httpClient = new HttpClient(); //打开窗口
PostMethod getMethod = new PostMethod("http://localhost:8080/webapp/"); //输入网址
try {
int statusCode = httpClient.executeMethod(getMethod); //按下回车运行,得到返回码
System.out.println(statusCode);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + getMethod.getStatusLine());
}
//读取内容
byte[] responseBody = getMethod.getResponseBody(); //得到返回的内容
//处理内容
System.out.println(new String(responseBody));
} catch (Exception e) {
e.printStackTrace();
} finally {
getMethod.releaseConnection();
}
下面代码模仿服务器,通过代码,构建"http://localhost:8080/webapp/"的服务器,接收内容,executeMethod 会调用handle方法
package com.cnryb;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import org.apache.http.HttpStatus;
import com.sun.net.httpserver.*;
public class HttpSer {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// HttpServer server = HttpServer.create(new InetSocketAddress(
// "127.0.0.1", 8765), 0);
// server.createContext("/",new MyResponseHandler());
// server.setExecutor(null); // creates a default executor
// server.start();
[align=center]
ExecutorService executor = Executors.newFixedThreadPool(20);
int port = Integer.parseInt(prop.getProperty("service_port"));// 8080
HttpServer server = HttpServer.create(new InetSocketAddress(port), 0);
String url = prop.getProperty("service_url");//wapp
HttpContext context = server.createContext(url, new MyResponseHandler ());
context.getFilters().add(new ParameterFilter());
server.setExecutor(executor);
server.start();[/align]
}
public static class MyResponseHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
// 可以获取相应的内容 以下自己追加
Map<String, Object> params = (Map<String, Object>)httpExchange.getAttribute("parameters");
if (params.get("xml") != null) {
resquestBody = params.get("xml").toString();
} else if (params.get("text/xml") != null) {
resquestBody = params.get("text/xml").toString();
} else if (params.get("OriginRequestBody") != null) {
resquestBody = params.get("OriginRequestBody").toString();
}
// -------------------------------------
//针对请求的处理部分
//返回请求响应时,遵循HTTP协议
String responseString = "<font color='#ff0000'>Hello! This a HttpServer!</font>";
//设置响应头
httpExchange.sendResponseHeaders(HttpStatus.SC_OK, responseString.length());
OutputStream os = httpExchange.getResponseBody();
os.write(responseString.getBytes());
os.close();
}
}
}
分享到:
相关推荐
本文档主要介绍基于IP隧道的Linux虚拟服务器的实现方案,旨在解决服务器集群系统的瓶颈问题。该方案通过IP隧道方法构建Linux网络服务器,实现了高可靠性、高可扩展性和高性能的虚拟服务器集群系统。 IP隧道技术是...
虚拟服务器则根据这些信息,配置相应的虚拟端口,以接收和转发视频数据。 总结来说,视频虚拟服务器的操作涉及到监控主机的网络配置、软件注册、端口设定以及DVR主机的连接配置。在区块链技术的环境中,这些设置...
迁移问题关注的是如何将物理服务器中的数据和应用平滑迁移到虚拟服务器中。隔离和安全关注的是虚拟服务器之间的数据隔离和保护机制。资源管理需要智能分配和调度虚拟机所需的物理资源,以最大化资源利用率。服务器...
服务器虚拟化技术是一种高效利用硬件资源的技术,它通过软件手段将一台物理服务器划分为多个相互隔离的虚拟环境,这些环境被称为虚拟机。每个虚拟机都可独立运行一个完整的操作系统,并支持各自的应用程序,彼此之间...
标题提到的是服务器版本的PDF虚拟打印机,这意味着它是专为在服务器操作系统环境下运行而设计的。 在服务器环境中,PDF虚拟打印机能够处理大量的打印任务,并且可以在多用户之间共享,使得团队协作更为便捷。它可以...
Socket套接字提供了在网络中建立双向通信通道的能力,使得虚拟服务器能够接收Composer的指令并返回相应的系统状态。 总的来说,该研究涉及了以下几个关键知识点: 1. Socket编程:利用Socket进行网络通信,实现...
本文将详细介绍如何在华为虚拟化平台上基于Windows Server 2016部署内网WSUS(Windows Server Update Services)补丁服务器,以提供内网终端用户和云桌面的漏洞补丁更新服务。 1、安装WSUS更新服务 首先,你需要在...
Mail服务器负责接收、发送和管理电子邮件,而客户端软件则提供用户界面,让用户能够方便地访问和管理自己的邮件。 首先,我们来详细了解一下"虚拟mail服务器"。虚拟Mail服务器通常是指在物理服务器上通过软件模拟出...
虚拟服务器自动化测试是一种高效的方法,可以减少人工介入,节省资源并提高测试的准确性和效率。以下是对这个主题的详细说明: 一、自动化测试流程 在虚拟服务器自动化测试中,首先,我们需要进入`/mnt/busybox`...
3. **健康检查**:定期检查物理服务器的健康状态,避免故障服务器接收新的请求,提高整体系统的可用性。 4. **预估和预测**:通过对历史数据的分析,预估未来可能出现的负载模式,提前调整调度策略。 5. **自适应...
程序员可能会使用套接字编程来创建监听5060端口的服务器,并通过解析接收到的数据来确定目标虚拟主机,然后将数据转发到正确的目的地。 `StdAfx.cpp`是预编译头文件,通常包含项目中经常使用的库和全局定义。这些预...
Linux虚拟服务器(Linux Virtual Server,LVS)是一种在Linux操作系统环境下实现高效且开源的负载均衡集群解决方案。由章文嵩博士于1998年5月发起,LVS旨在构建可伸缩、高可用的虚拟服务器,通过在IP层和内容请求...
【基于集群技术的Linux虚拟服务器及其配置实例】 集群技术是一种将多台计算机组合在一起,以协同处理任务的技术,它可以模拟出一台性能更强的单一系统。集群系统的主要目标是提高资源利用率,增强系统的可靠性和...
该系统基于应用虚拟化技术,旨在解决远程访问、多终端兼容性、网络延迟等问题,为企业提供无缝的应用部署和管理解决方案。 应用虚拟化是一种将应用程序从操作系统中分离出来,使其能在不同的物理或虚拟环境中运行的...
5. 数据传输:串口服务器接收的数据会被解包并转发到相应的虚拟串口,供应用程序读取。这样,实现了串口设备与网络的无缝集成。 6. 故障恢复:软件具有自动重连功能,当网络中断后,可以自动尝试重新连接,确保通信...
- **XenServer**:作为一款开源虚拟服务器产品,XenServer能够实现X86平台上硬件资源的最大化利用和最小化成本。它支持操作系统流技术,实现动态数据中心的工作模式,并确保7x24小时的高可用性。 - **XenApp**:通过...
【基于Linux的虚拟服务器集群技术】是一种用于解决网络性能瓶颈的有效解决方案,特别是在处理大量网络流量和计算需求时。集群技术通过将多个实际服务器整合在一起,实现了高可用性、高性能和可伸缩性的网络服务。 *...
【Linux虚拟服务器实现大容量邮件系统的负载均衡】 随着互联网的快速发展,邮件系统作为网络服务的重要组成部分,面临着处理海量用户需求的挑战。传统的集中式邮件系统由于处理能力有限,已无法满足大容量的需求。...
在这个文件中,开发者可能定义了处理客户端请求、转发到目标服务器以及接收返回响应的函数。虚拟主机代理的关键在于能够识别并处理多个不同域名的请求,这通常涉及到解析HTTP头部中的"Host"字段,以便正确地将请求...