`
ainn2006
  • 浏览: 64469 次
  • 来自: ...
社区版块
存档分类
最新评论

httpclient发送xml字符串

阅读更多
public static void main(String[] args) {
String xml = "<?xml version="
+ "\"1.0\""
+ " encoding="
+ "\"UTF-8\""
+ "?><SDRequest><TransactionName>CreateDataFileComplete</TransactionName><IdentityInfo><Code>"
+ 1 + "</Code><Description></Description><Timestamp>"
+ "20100315140542" + "</Timestamp></IdentityInfo></SDRequest>";//新接的一个项目接口,非要用xml请求,找不到别的post方式,最终选用这种方式,将参数拼成xml字符串

// File input = new File("test.xml");//如果是xml文件,可以这样写
PostMethod post = new PostMethod("http://localhost/site/forXls.do");//请求地址

// 设置请求的内容直接从文件中读取
   //   post.setRequestBody( new FileInputStream(input));
     // if (input.length() < Integer.MAX_VALUE)
     //    post.setRequestContentLength(input.length());
    //  else
     //  post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);

post.setRequestBody(xml);//这里添加xml字符串

// 指定请求内容的类型
post.setRequestHeader("Content-type", "text/xml; charset=GBK");
HttpClient httpclient = new HttpClient();//创建 HttpClient 的实例
int result;
try {
result = httpclient.executeMethod(post);
System.out.println("Response status code: " + result);//返回200为成功
System.out.println("Response body: ");
System.out.println(post.getResponseBodyAsString());//返回的内容
post.releaseConnection();//释放连接
} catch (HttpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

//以上就是发送请求的代码,对方接收到数据可以直接解析成xml

Document airDocument = getClientRequestMessage(request);
System.out.println(airDocument.getRootElement().getName());
if ((XmlInterfaceParam.SD_REQUEST).equals(airDocument.getRootElement()
.getName())) {
Element tn = airDocument.getRootElement().getChild(
XmlInterfaceParam.TRANSACTION_NAME);
if ("CreateDataFileComplete".equals(tn.getText())) {
Element ii = airDocument.getRootElement().getChild(
XmlInterfaceParam.IDENTITY_INFO);
String code = ii.getChildText(XmlInterfaceParam.CODE);
String description = ii
.getChildText(XmlInterfaceParam.DESCRIPTION);
String timestamp = ii.getChildText(XmlInterfaceParam.TIMESTAMP);
System.out.println("code: " + code);
System.out.println("description: " + description);
System.out.println("timestamp: " + timestamp);
}
}

// 读取xml
private Document getClientRequestMessage(HttpServletRequest _request)
throws UnexpectedException {
try {
SAXBuilder builder = new SAXBuilder();
InputSource is = new InputSource(); // create an input
// source
is.setByteStream(_request.getInputStream()); // set the input
// stream mandated
// to UTF-8
is.setEncoding("UTF-8"); // set the mandate
// encoding to the input
// source
Document document = builder.build(is);
return document;
} catch (IOException e) {
e.printStackTrace();
throw new UnexpectedException(
"IOException exception when getInputStream from http request",
e);
} catch (JDOMException e) {
e.printStackTrace();
throw new UnexpectedException(
"JDOMException when build document form inputstream", e);
} catch (NullPointerException e) {
e.printStackTrace();
throw new UnexpectedException(
"NullPointerException when build document form inputstream",
e);
} catch (ClassCastException e) {
e.printStackTrace();
throw new UnexpectedException(
"ClassCastException when build document form inputstream",
e);
}
}
分享到:
评论

相关推荐

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

    主要介绍了java 中HttpClient传输xml字符串实例详解的相关资料,需要的朋友可以参考下

    android访问web应用并返回xml字符串

    android通过get方式提交数据到web应用,web应用将xml数据返回得android客户端

    C#使用Http Post方式传递Json数据字符串调用Web Service

    主要为大家详细介绍了C#使用Http Post方式传递Json数据字符串调用Web Service,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    http:简化的、轻量级的 HTTP 客户端库,是 apache httpclient 的包装器

    无需丑陋的字符串连接即可轻松添加路由参数 本机支持基本身份验证 每个请求的可定制标头 完全了解代理。 可定制的超时时间 支持 gzip 通过一套全面的开发人员测试实现良好的测试覆盖率,为库的质量提供保证 最小化...

    Textpattern CMS 4.5.7.zip

    *修正:情况下set_pref()可能会损坏优先表,如果该字符串名称中包含“%”或“_”字符。 *修正:除正常评论的任何有效长度的电子邮件。 *修正:浏览日志支持IPv6。 *修正:文章可以分配给部分名称超过64个...

    java jdk实列宝典 光盘源代码

    判断一个字符串是否是合法的java标识符;使用StringBuffer;IP地址转化成整数,整数转化成IP地址; 十八为身份证格式验证;表达式解析器;字符串编码的转换;字符串对齐器;密码加密和验证(MD5); 制作命令行程序...

    Android 开发技巧

    9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37...

    Android开发资料合集-World版!

    9.31、把文件内容读出到一个字符串 245 9.32、扫描WIFI热点演示实例教程 246 9.33、调用GOOGLE搜索 249 9.34、调用浏览器 载入某网址 249 9.35、获取 IP地址 249 9.36、从输入流中获取数据并以字节数组返回 250 9.37...

    精通ANDROID 3(中文版)1/2

    3.1.1 字符串资源  3.1.2 布局资源  3.1.3 资源引用语法  3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5...

    精通Android 3 (中文版)2/2

    3.1.1 字符串资源  3.1.2 布局资源  3.1.3 资源引用语法  3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5...

    疯狂Android讲义源码

     6.2.2 定义字符串、颜色、尺寸资源  文件 218  6.2.3 使用字符串、颜色、  尺寸资源 219  6.3 数组(Array)资源 222  6.4 使用(Drawable)资源 225  6.4.1 图片资源 225  6.4.2 StateListDrawable资源 ...

    疯狂Android讲义.part2

    6.2.2 定义字符串、颜色、尺寸资源 文件 218 6.2.3 使用字符串、颜色、 尺寸资源 219 6.3 数组(Array)资源 222 6.4 使用(Drawable)资源 225 6.4.1 图片资源 225 6.4.2 StateListDrawable资源 225 6.4.3 ...

    疯狂Android讲义.part1

    6.2.2 定义字符串、颜色、尺寸资源 文件 218 6.2.3 使用字符串、颜色、 尺寸资源 219 6.3 数组(Array)资源 222 6.4 使用(Drawable)资源 225 6.4.1 图片资源 225 6.4.2 StateListDrawable资源 225 6.4.3 ...

    Android开发资料合集--续

    95、Java替换字符串,不区分大小写 138 96、Java获得随机数 139 97、MD5加密 141 98、HTTP数据传输 141 从Internet获取数据 141 向Internet发送数据 143 99、Jason解析 146 100、广播 147 101、SQLite清空数据库 147...

    Android实例代码

    6.2、使用字符串、颜色、尺寸资源: 6.3、数组资源: 6.4、使用Drawable资源:图片资源; StateListDrawable资源; LayerDrawable资源; ShapeDrawable资源; ClipDrawable资源; AnimationDrawable资源; 6.5、使用...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    6.2、使用字符串、颜色、尺寸资源: 6.3、数组资源: 6.4、使用Drawable资源:图片资源; StateListDrawable资源; LayerDrawable资源; ShapeDrawable资源; ClipDrawable资源; AnimationDrawable资源; 6.5、...

Global site tag (gtag.js) - Google Analytics