`
ld362093642
  • 浏览: 66715 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java请求cgi或REST获取数据

阅读更多
POST发送http请求 可请求cgi程序或REST程序获取JSON格式数据串,编码要统一

public static String http(String url, Map<String, String> params) {
		URL u = null;
		HttpURLConnection con = null;
		// 构建请求参数
		StringBuffer sb = new StringBuffer();
		if (params != null) {
			for (Entry<String, String> e : params.entrySet()) {
				sb.append(e.getKey());
				sb.append("=");
				sb.append(e.getValue());
				sb.append("&");
			}
			sb.substring(0, sb.length() - 1);
		}
		System.out.println("send_url:" + url);
		System.out.println("send_data:" + sb.toString());
		// 尝试发送请求
		try {
			u = new URL(url);
			con = (HttpURLConnection) u.openConnection();
			con.setRequestMethod("POST");
			con.setDoOutput(true);
			con.setDoInput(true);
			con.setUseCaches(false);
			con.setRequestProperty("Content-Type",
					"application/x-www-form-urlencoded");
			OutputStreamWriter osw = new OutputStreamWriter(
					con.getOutputStream(), "UTF-8");
			osw.write(sb.toString());
			osw.flush();
			osw.close();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (con != null) {
				con.disconnect();
			}
		}

		// 读取返回内容
		StringBuffer buffer = new StringBuffer();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					con.getInputStream(), "UTF-8"));
			String temp;
			while ((temp = br.readLine()) != null) {
				buffer.append(temp);
				buffer.append("\n");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

		return buffer.toString();
	}


Java发送HTTP请求  POST方式


public static void main(String[] args) {
String REST_IP = "http://" + "202.108.212.148:8080";
Map<String, String> maps = new HashMap<String, String>();
maps.put("ti", "605");
maps.put("tn", "=000132-w00000002");//以此类推 所有参数
maps.put("at", "2014-10-23 10:27:28");
maps.put("snum", "0");
maps.put("re", "0");
maps.put("ka", "测试22");
maps.put("et", "2015-10-23 10:27:24");
maps.put("ty", "2");
String jsonStr = http(REST_IP + "/rest/topic/update", maps);
/*Rest rest = new Rest();
rest.setUrl("/cgi-bin/RealtimeSearch.cgi");
rest.set("key", key);
JSONObject json = rest.json(true);*/
JSONObject json = JSONObject.fromObject(jsonStr);
System.out.println(json.toString());


}


public static String http(String url, Map<String, String> params) {
URL u = null;
HttpURLConnection con = null;
// 构建请求参数
StringBuffer sb = new StringBuffer();
if (params != null) {
for (Entry<String, String> e : params.entrySet()) {
sb.append(e.getKey());
sb.append("=");
sb.append(e.getValue());
sb.append("&");
}
sb.substring(0, sb.length() - 1);
}
System.out.println("send_url:" + url);
System.out.println("send_data:" + sb.toString());
// 尝试发送请求
try {
u = new URL(url);
con = (HttpURLConnection) u.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
OutputStreamWriter osw = new OutputStreamWriter(
con.getOutputStream(), "UTF-8");
osw.write(sb.toString());
osw.flush();
osw.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null) {
con.disconnect();
}
}

// 读取返回内容
StringBuffer buffer = new StringBuffer();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
con.getInputStream(), "UTF-8"));
String temp;
while ((temp = br.readLine()) != null) {
buffer.append(temp);
buffer.append("\n");
}
} catch (Exception e) {
e.printStackTrace();
}

return buffer.toString();
}
分享到:
评论

相关推荐

    294_Java校园网_校园就业平台_校园论坛.rar

    Servlet是Java实现CGI(通用网关接口)功能的一种方式,用于处理HTTP请求;JSP则是用于创建动态网页的视图层技术,结合HTML和Java代码,使页面更具交互性。 2. **框架应用**:为了提高开发效率和代码复用性,项目...

    Java Tutorial: Creating Web Services

    安全性也得到增强,因为数据不再存储在 Web 或应用服务器上,这使得黑客难以直接访问到存储数据的数据库。 #### 2. Web 服务架构与优势 现代的多层 Web 应用架构中,通常包含以下几层: - **客户端层**:负责用户...

    WEB技术发展与REST的由来.pdf

    CGI(通用网关接口)的出现使得Web服务器能够处理动态请求,但效率较低。随后,服务器端脚本语言如ASP、PHP、JSP等兴起,提供了更高效的动态内容生成能力。同时,客户端的JavaScript和Java Applet让浏览器端的交互变...

    跟开涛学SpringMVC

    最初是CGI技术,使用C或Perl语言编写,每次请求会创建一个进程,消耗资源较多。随着技术的发展,出现了Servlet技术,这是一种JavaEE Web组件技术,每次请求只产生一个线程,相对轻量级,并且可以利用Java EE的技术栈...

    jmeter.docx

    **应用场景**:起初针对Web应用进行性能测试,后续扩展至静态资源、动态资源、Java小程序、CGI脚本、Java对象、数据库和FTP服务器等多个领域。 **核心能力**:模拟大量并发用户访问系统,检测其响应时间和整体稳定...

    跟着开涛学SpringMVC

    - **灵活的URL映射**:支持将请求URL映射到控制器类或方法上。 - **数据验证**:支持客户端和服务器端的数据验证。 - **国际化支持**:支持应用的国际化。 - **RESTful支持**:支持基于REST原则的Web服务。 - **...

    apache-jmeter-5.3.rar

    这款开源软件适用于各种类型的应用,包括静态和动态资源,如静态文件、Java小服务程序、CGI脚本、Java对象、数据库和FTP服务器。 在JMeter 5.3中,用户可以创建测试计划来模拟多个并发用户对目标系统进行操作。测试...

    Mashup技术与移动互联网PPT课件.ppt

    服务端方法通常使用Java Servlets、CGI、PHP或ASP等技术,而在客户端则常使用JavaScript或Applet。Web协议,如SOAP、REST和HTTP,以及接口描述语言(如WSDL)和数据交换格式(如XML、RSS/Atom),为Mashup的数据交互...

    jmeter配置、安装手册-多并发多线程进行服务器压力测试.rar

    JMeter由Apache软件基金会开发,支持多种协议,包括HTTP(S)、FTP、SMTP、SOAP/REST等,可测试静态和动态资源,如静态文件、Java Applets、CGI脚本、Java对象、数据库和SQL查询等。此外,JMeter还适用于功能测试、...

    jmeter+linux资源监控

    这个错误与JMeter和Linux资源监控的主题直接关联性不大,但在执行自动化测试或数据抓取时可能会遇到,解决方法包括检查网络连接、验证URL的有效性以及确保目标服务器没有阻止请求。 总的来说,结合JMeter和Linux...

    测试工具(Jmeter)培训

    它最初设计用于Web应用测试,但现在已经扩展到包括静态和动态资源的多种测试领域,如静态文件、Java小服务程序、CGI脚本、数据库、FTP服务器等。Jmeter支持多种应用程序类型,包括Web(HTTP, HTTPS)、SOAP/REST Web...

    WebSevers实例

    它们接收HTTP请求,将请求路由到适当的处理程序(如CGI脚本、FastCGI进程或应用程序服务器),并返回响应。在三层架构中,Web服务器作为表现层和业务逻辑层之间的桥梁,确保两者之间的通信流畅。 "WEB服务"的概念更...

    Python编程入门经典

    3.1 引用数据——使用数据的 名称 29 3.1.1 使用名称修改数据 30 3.1.2 复制数据 31 3.1.3 禁用的名称以及一些规则 31 3.2 使用更多的内置类型 31 3.2.1 元组——不可更改的数据 序列 32 3.2.2 列表——可以更改的...

    apache-jmeter-2.13

    Apache JMeter是一款完全基于Java的开源测试工具,可以用于测试静态和动态资源的性能,如静态文件、Java Servlets、CGI脚本、Java对象、数据库和FTP服务器。它模拟多种并发用户行为,以评估系统在高负载下的表现。 ...

    WebGIS考试参考试题.docx

    - **解析:** WebGIS实现技术包括CGI、Server API、Plug-in、ActiveX 和 Java Applet等多种技术手段,这些技术帮助开发者构建复杂的地理信息系统应用。 通过以上知识点的解析,我们可以看到WebGIS技术涵盖了从基本...

    接口压力测试工具可多线程

    1. JMeter:Apache JMeter是一款开源的、跨平台的压力测试工具,可以用于对静态和动态资源(如静态文件、Java Servlets、CGI脚本、Java对象、数据库和FTP服务器)进行负载和性能测试。JMeter支持多线程,可以创建...

    CXF WebService 开发指南、技术文档

    它支持多种协议和服务实现方式,包括SOAP、XML-RPC、REST等。CXF的官方网站提供了丰富的资源和支持文档,可以通过以下链接访问:[http://cxf.apache.org/](http://cxf.apache.org/)。 为了开始使用CXF进行...

    apache-jmeter-2.10.rar

    它可以用来测试静态和动态资源(如静态文件、Java小服务程序、CGI脚本、Java对象、数据库、FTP服务器等)。 2. **压力测试**:压力测试是通过模拟大量并发用户来检验系统在高负载下的性能和稳定性。JMeter可以创建...

Global site tag (gtag.js) - Google Analytics