此程序是根据一个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是Apache提供的一款强大的Java HTTP客户端API,它允许...
至此,我们已经成功地使用Java的HttpClient库将一个对象转换为XML字符串,并以二进制流的方式发送到了服务器。这个过程中涉及的关键技术包括对象到XML的转换(JAXB)、流操作(ByteArrayOutputStream和...
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
利用HttpClient发送HTTP请求 利用HttpClient发送HTTP请求
利用-中国网建平台-发送短息验证码,或者短信信息,大多数用户android,ios应用手机注册时发送短信验证码,利用httpclient发送,其他短信平台用法大同小异.详细介绍可以观看各个短信平台的开发文档,写得都很详细!
而"httpclient-demo"项目则是一个客户端应用,它的任务是利用Apache HttpClient库来构建和发送POST请求到"post-demo"项目提供的接口。HttpClient库提供了丰富的API,允许开发者灵活地设置请求头、主体内容、超时等...
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 数据。 完整的KTR实例
### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...
在我们的场景中,我们发送的是JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 要使用HttpClient发送POST请求,你需要以下几个步骤: 1. *...
HttpClient支持发送XML格式的请求体。以下是一个示例,展示了如何构建XML内容并作为POST请求的一部分: ```java String xmlData = "<request><param1>value1</param1><param2>value2</param2></request>"; ...
在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...
以下是一个使用HttpClient发送GET请求的Java代码示例: ```java import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient;...
一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者
本篇文章将详细讲解如何使用HTTPClient库以POST方式发送JSON格式的数据,并介绍相关依赖包。 首先,为了使用HTTPClient库,我们需要导入Apache HttpClient相关的JAR包。在提供的文件列表中,"HttpClientJar"很可能...
不会的可以在评论区留言哈,这是我自己做项目用到的。所以绝对可用!同时共享出来给到大家
本篇文章将深入探讨如何在Java中利用HTTP协议发送XML报文,并通过实例和参数解析具体实现步骤。 首先,我们需要引入Java的HttpURLConnection类,这是Java标准库提供的HTTP客户端接口。发送XML报文通常涉及到POST或...
在XML、form(表单数据)和JSON提交方面,HttpClient提供了一种灵活的方式将这些数据类型发送到服务器。 首先,我们来看`HttpClientUtil.java`,这是一个常见的工具类,通常包含一系列静态方法,用于简化HttpClient...
### 使用HttpClient发送POST请求,并获取响应内容 #### 一、简介 在现代软件开发中,尤其是在Web应用领域,客户端与服务器之间的通信是非常重要的环节。Java作为一种广泛应用的编程语言,提供了多种方式来实现这一...