此程序是根据一个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报文,httpServer接收报文。两个程序一看就明白可以直接调用执行不在多说。
利用HttpClient发送HTTP请求 利用HttpClient发送HTTP请求
主要介绍了java 中HttpClient传输xml字符串实例详解的相关资料,需要的朋友可以参考下
利用-中国网建平台-发送短息验证码,或者短信信息,大多数用户android,ios应用手机注册时发送短信验证码,利用httpclient发送,其他短信平台用法大同小异.详细介绍可以观看各个短信平台的开发文档,写得都很详细!
其中包含项目post-demo定义接口;包含另一个项目httpclient-demo使用工具类发送post请求调用接口。详细内容查看博客 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 数据。 完整的KTR实例
解决证书错误,利用httpClient发送https请求,内容格式为XML,另外包中有sha1加密,需要的包,速速下载
一个简单的易学的 基于HttpClient 4.3发送psot及get请求,返回数据,适合初学者,适合初学者
java HttpClient 发送GET请求和带有表单参数的POST请求教程例子
不会的可以在评论区留言哈,这是我自己做项目用到的。所以绝对可用!同时共享出来给到大家
HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解
httpclient的用法,发送get请求和post请求,设置header
httpclient post方式发送json格式数据,需要的相关包。
HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解(这款工具类是我精心挑选适合广大java程序猿使用)
httpclient发送post请求
httpclient发送post请求