HttpURLConnection post方式发送xml

本文记录了作者使用HttpURLConnection在Java 1.5.0_22版本中实现发送XML报文到远程接口的过程。遇到的问题包括对端返回空指针异常,最终发现对端通过request.getParameter("$xml")获取报文内容。此外,还涉及到apache httpclient尝试失败的情况,以及运行时需要配置classpath,使用到的库包括oracle驱动和dom4j。
摘要由CSDN通过智能技术生成

这两天上司让我编一个程序,读取数据库记录并远程调接口传xml报文,处理返回结果。

想想没啥难的,就二话不说的写起程序来了。结果竟然用了一天多时间才搞定,无比郁闷呐。还是记录下来方便自己查看,并且分享大家。jdk用的1.5.0_22版本。

期间用apache的httpclient也做过,也没有成功,对端一直给我返回个空指针异常,网上怎么查都查不出来个结果。

后来,反编译对端的class后,简直崩溃呀。。。原来对端获取报文方式是request.getParameter("$xml");

用到了两个jar包一起传上来,一个oracle驱动包,一个dom4j解析xml包。

 

在命令窗口运行,必须配置好环境变量.

直接在命令窗口配置当前命令窗口可用范围的classpath.

注意classpath等号后面的.;是必须要的

set classpath=.;C:\Program Files\java\jdk1.5.0_22\lib\dt.jar;C:\Program Files\java\jdk1.5.0_22\lib\tools.jar;C:\Program Files\java\jdk1.5.0_22\lib;C:\httpxml\oracle_jdbc.jar;C:\httpxml\dom4j.jar
javac HttpURLConnectionTest.java
java HttpURLConnectionTest http://远程接口地址:端口/接收报文类 数据库ip 数据库sid 数据库用户名 数据库密码

 

 

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 * 远程调用接口发送报文
 * 2012-03-14
 * @author mapengwei 
 * @version 1.0 
 */
public class HttpURLConnectionTest {
	
	
	//数据库连接对象
	private Connection conn = null;
	
	/**
	 * 查询数据库所有未处理记录
	 * @param dbip     数据库地址
	 *        oid      oracle数据库sid
	 *        username 数据库用户名
	 *        password 数据库密码
	 * @throws ClassNotFoundException
	 *         SQLException
	 * @return List 返回List结果集
	 */
	@SuppressWarnings("unchecked")
	public List query(String dbIP,String oid,String userName,String passWord) throws ClassNotFoundException, SQLException {
		List list = new ArrayList();
		//加载oracle数据库驱动
		Class.forName("oracle.jdbc.driver.OracleDriver");
		if(null=&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值