通过HttpURLConnection发送XML字符串流

今天干活时有个需求,要和.net进行一次交互,想在Struts的Action中接收.net通过HTTPt发过来的XML格式的字符流!然后就解析这个XML字符串通过一些处理然后存数据库。

在做完解析过程和存数据库后,想自己测试一下,所以就想到了通过JDK的HttpURLConnection向自己的Action发送一个用于测试的XML格式的字符流,然后就出现了以下的代码


public class TestClientRegist extends TestCase {

public void testRegist(){
try{

// 用于测试,读的自己本地的XML文件
FileInputStream input = new FileInputStream(new File("regist.xml"));

// Action地址
URL url = new URL("http://localhost:8080/fstm/rmi/client/regist.do");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");

byte[] b = new byte[1024];
int l = 0;
OutputStream out = conn.getOutputStream();
out.write("data=".getBytes());
while((l = input.read(b, 0, b.length)) != -1){
out.write(b, 0, l);
}
out.close();
InputStream in = conn.getInputStream();
in.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}

这些代码是没问题的啦。但没用过这东西,刚开始出了好多问题。

1,第一次在下面没有获取“输入流”,发现没执行时没有反应,Action那边也没有调用

加上以后就好了。问了个“高人”才明白,这里需要建立一次连接,当执行完输出流后。还要接收HTTP的响应。还遇到一些别的问题就不在罗嗦了~~~~大家有什么问题可以来多讨论讨论。

有什么高见请赐教。一定认真接受。

下面在给出Action接收的代码


public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

try {
InputStream in = request.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(in));
StringBuffer data = new StringBuffer();
String line = null;
while((line = br.readLine()) != null){
data.append(line);
}
logger.debug(data);
clientMgr.doRegistManager(data.toString());
// 设置返回状态
response.setStatus(HttpServletResponse.SC_OK);
} catch (Exception ex) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
logger.warn("", ex);
}
return null;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值