`

根据List生成XML利用HttpClient发送给MPC

阅读更多

此程序是根据一个List,然后生成一个XML的文件,然后再使用HttpClient发送给相应的URL进行处理(这里的XML的文件可以保存在自己的项目的一个文件中)
@Override
	public void locationEvent(LocationEvent locationEvent) {
		// TODO Auto-generated method stub
		List list = ls.getListLocation();
		// 在这里就可以调用一个函数去生成一个XML的文件,然后再发送一个HttpClient的请求给MPC
		this.creatXML(list);
		//生成XML之后就发送一个Http请求,通过HttpClient
		this.sendPostMethod("http://192.168.0.89:2000/LcsInterface");
	}

	private void creatXML(List list) {
		Element root, e1, e11, e12, e2, e21, e22, e3, e31, e32, e33, e331, e332, e333, e34, e35, e351, e352, e353, e36, e361, e362, e363, e364;
		Document Doc;
		root = new Element("REQ"); // 首先建立根元素
		DocType type = new DocType("REQ", "LOCREQ.DTD"); // 文档类型
		Doc = new Document(root, type); // 然后用root创建XML文档对象

		e1 = new Element("CLIENT"); // 创建元素e1,设置内容,设置
		e11 = new Element("LCSCLIENTID");   // 定义子元素
		e11.setText("333");
		e12 = new Element("PASSWORD");      // 定义子元素
		e12.setText("0555");
		e1.addContent(e11); // 把子元素添加到元素e1中
		e1.addContent(e12);
		root.addContent(e1);
		
		e2 = new Element("ORIGINATOR");
		e21 = new Element("ORID");
		String mobile = (String)list.get(0);
		e21.setText(mobile);
		e22 = new Element("ORID_TYPE");
		e22.setText("0");
		e2.addContent(e21);
		e2.addContent(e22);
		root.addContent(e2);
		
		e3 = new Element("LIR");
		e31 = new Element("ORIGUSER_ACCESSTYPE");
		e31.setText("1");
		e3.addContent(e31);
		e32 = new Element("FINDME_INDIC");
		e32.setText("1");
		e3.addContent(e32);
		e33 = new Element("MSIDS");
		e331 = new Element("MSID");
		e331.setText(mobile);
		e33.addContent(e331);
		e332 = new Element("MSID_TYPE");
		e332.setText("0");
		e33.addContent(e332);
		e333 = new Element("QUERYPASSWORD");
		e333.setText("888888");
		e33.addContent(e333);
		e3.addContent(e33);
		e34 = new Element("POSREQTYPE");
		e34.setText("1");
		e3.addContent(e34);
		
		e35 = new Element("GEO_INFO");
		e351 = new Element("COORD_SYS");
		e351.setText("LL");
		e35.addContent(e351);
		e352 = new Element("DATUM");
		e352.setText("WGS-84");
		e35.addContent(e352);
		e353 = new Element("LL_FORMAT");
		e353.setText("DMS3");
		e35.addContent(e353);
		e3.addContent(e35);
		
		e36 = new Element("PQOS");
		e361 = new Element("RESP_REQ");
		e361.setText("0");
		e36.addContent(e361);
		e362 = new Element("RESP_TIMER");
		e362.setText("0010");
		e36.addContent(e362);
		e363 = new Element("HOR_ACC");
		e363.setText("200");
		e36.addContent(e363);
		e364 = new Element("ALT_ACC");
		e364.setText("200");
		e36.addContent(e364);
		e3.addContent(e36);
		
		root.addContent(e3);

		XMLOutputter XMLOut = new XMLOutputter();
		Format format = Format.getCompactFormat(); // 得到一个定义xml格式的format
		format.setIndent("  "); // 在元素后换行,每一层元素缩排两格
		XMLOut.setFormat(format); // 设定格式
		
		try {
			XMLOut.output(Doc, new FileOutputStream("c:/test3.xml"));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} // 输出
	}
	
	/**
	 * 生成XML之后就通过HttpClient发送一个请求到MPC
	 */
	private void sendPostMethod(String url){
		HttpClient client = new HttpClient();
		HttpMethod method = getPostMethod(url);
		try {
			client.executeMethod(method);
			//打印服务器返回的状态   
			System.out.println(method.getStatusLine());
			//打印结果页面   
	        //String response = new String(method.getResponseBodyAsString().getBytes("8859_1"));   
	       //打印返回的信息   
	        //System.out.println(response);   
		} catch (HttpException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			method.releaseConnection();
		}
	}
	
	/**
	 * 使用post方式提交数据
	 */
	private static HttpMethod getPostMethod(String url){
		File input = new File("c:/test3.xml");
		System.out.println(url);
		PostMethod post = new PostMethod(url);
		//NameValuePair mobile = new NameValuePair("mobile", "13728852648");
		//post.setRequestBody(new NameValuePair[]{mobile});
		try {
			post.setRequestBody(new FileInputStream(input));
			 post.setRequestHeader("Content-type", "text/xml; charset=UTF-8");   
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return post;
	}
 上面的那个方法locationEvent是一个自定义监听器的一个实现方法,当list一变化的时候就会自动调用locationEvent的方法

分享到:
评论

相关推荐

    httpclient 客户端发送xml报文到服务器端采用post方式(加密)传递

    本示例探讨的是如何使用HTTPClient库在客户端发送XML报文到服务器端,且报文通过POST方法传递,并可能涉及加密处理,确保数据的安全性。 首先,HTTPClient是Apache提供的一款强大的Java HTTP客户端API,它允许...

    java 中HttpClient传输xml字符串实例详解

    至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...

    java 通过模板生成 xml,发送报文

    在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...

    利用HttpClient发送HTTP请求

    利用HttpClient发送HTTP请求 利用HttpClient发送HTTP请求

    利用httpclient发送短信验证码-中国网建平台

    利用-中国网建平台-发送短息验证码,或者短信信息,大多数用户android,ios应用手机注册时发送短信验证码,利用httpclient发送,其他短信平台用法大同小异.详细介绍可以观看各个短信平台的开发文档,写得都很详细!

    httpclient发送post请求

    而"httpclient-demo"项目则是一个客户端应用,它的任务是利用Apache HttpClient库来构建和发送POST请求到"post-demo"项目提供的接口。HttpClient库提供了丰富的API,允许开发者灵活地设置请求头、主体内容、超时等...

    SpringBoot使用httpclient发送Post请求时

    try(CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(url); StringEntity stringEntity = new StringEntity(params, Charset.forName("UTF-8")); ...

    ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据

    ETL KETTLE 中利用Httpclient 调用webservice接口获取XML数据,并解析XML 数据。 完整的KTR实例

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

    HttpClient发送post请求传输json数据

    在我们的场景中,我们发送的是JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 要使用HttpClient发送POST请求,你需要以下几个步骤: 1. *...

    httpClient发送HTTP请求

    HttpClient支持发送XML格式的请求体。以下是一个示例,展示了如何构建XML内容并作为POST请求的一部分: ```java String xmlData = "<request><param1>value1</param1><param2>value2</param2></request>"; ...

    java使用HttpClient发送http请求

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    以下是一个使用HttpClient发送GET请求的Java代码示例: ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient;...

    HttpClient 发送get和post请求

    一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者

    httpclient post方式发送请求

    本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能...

    httpclient4.5发送https请求(验证证书)

    不会的可以在评论区留言哈,这是我自己做项目用到的。所以绝对可用!同时共享出来给到大家

    java http 发送xml报文(java发送xml报文实例+参数)

    本篇文章将深入探讨如何在Java中利用HTTP协议发送XML报文,并通过实例和参数解析具体实现步骤。 首先,我们需要引入Java的HttpURLConnection类,这是Java标准库提供的HTTP客户端接口。发送XML报文通常涉及到POST或...

    httpClient的xml,form,json提交

    在XML、form(表单数据)和JSON提交方面,HttpClient提供了一种灵活的方式将这些数据类型发送到服务器。 首先,我们来看`HttpClientUtil.java`,这是一个常见的工具类,通常包含一系列静态方法,用于简化HttpClient...

    使用HttpClient发送POST请求,并获取响应内容(附详细步骤).txt

    ### 使用HttpClient发送POST请求,并获取响应内容 #### 一、简介 在现代软件开发中,尤其是在Web应用领域,客户端与服务器之间的通信是非常重要的环节。Java作为一种广泛应用的编程语言,提供了多种方式来实现这一...

Global site tag (gtag.js) - Google Analytics