今天干活时有个需求,要和.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;
}
分享到:
相关推荐
本篇文章将深入探讨如何在Java中利用HTTP协议发送XML报文,并通过实例和参数解析具体实现步骤。 首先,我们需要引入Java的HttpURLConnection类,这是Java标准库提供的HTTP客户端接口。发送XML报文通常涉及到POST或...
- **发送数据**:将之前构建的XML字符串转换为字节数组,并通过`DataOutputStream`写入到连接的输出流中,完成数据的发送。 - **接收响应**:通过`BufferedReader`读取服务器的响应,将读取的每一行追加到`...
本示例中的代码着重于利用HTTPURLConnection处理XML数据,这在移动应用中尤其常见,比如从远程服务器获取配置信息或者同步用户数据。下面将详细介绍这个主题中的关键知识点。 1. **HTTPURLConnection的使用** - **...
本案例主要讲解如何在Android应用中通过网络通信发送XML数据到Web服务器,从而实现数据交换。 首先,我们需要理解XML(eXtensible Markup Language),它是一种用于标记数据的语言,具有良好的可读性和可扩展性。在...
java HttpURLConnection 发送文件和字符串信息 java HttpURLConnection 是一种常用的网络通信协议,它可以用于发送文件和字符串信息。下面将详细介绍 java HttpURLConnection 发送文件和字符串信息的相关知识点。 ...
3. **转换为字符串**:为了发送或保存,我们需要将`Document`对象转换为字符串,这通常通过`TransformerFactory`和`Transformer`实现。 ```java TransformerFactory transformerFactory = TransformerFactory.new...
总的来说,使用Java的`HttpURLConnection`发送POST请求并上传文件涉及理解HTTP协议的多部分表单数据格式,以及如何通过`DataOutputStream`正确地构造这些数据。通过这种方式,你可以实现自定义的文件上传逻辑,而不...
通过以上分析可以看出,使用`HttpURLConnection`发送短信的过程主要包括了配置参数、编码内容、构建URL、创建连接并发送请求以及异常处理等几个步骤。这种方式虽然简单易行,但在实际生产环境中还需要考虑到安全性...
JAVA通过HttpURLConnection上传和下载文件的方法 JAVA通过HttpURLConnection上传和下载文件的方法是非常有实用价值的,需要的朋友可以参考下。HttpURLConnection是一个Java类,用于从网络中读取数据或向网络中写入...
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...
总的来说,Android通过HttpURLConnection实现GET请求,结合XMLPullParser解析返回的XML数据,可以实现与Web应用的高效交互。在实际开发中,你可能还需要考虑错误处理、网络权限、异步执行(如使用AsyncTask或...
本主题将深入探讨如何通过编程向URL发送XML数据并接收返回的XML响应,主要涉及Java相关的技术。请确保已安装了Java Development Kit (JDK),这是编写和运行Java程序的基础。 首先,我们要使用HTTP协议来实现这个...
然后,通过HTTP客户端库,如Java的HttpURLConnection或Python的requests库,将这个XML字符串发送到Web服务器。服务器端接收到请求后,会解析XML,找到手机号码,然后进行归属地查询。这可能涉及到数据库查询,比如...
通过使用HttpURLConnection,可以实现向服务器发送数据的功能。在本文中,我们将详细介绍 Java 使用HttpURLConnection发送数据简单实例的相关知识点。 一、HttpURLConnection 概述 HttpURLConnection 是 Java 语言...
### Android流方式发送XML数据详解 在Android应用开发过程中,数据传输是不可或缺的一环,尤其在与服务器交互时,如何高效、稳定地发送大量数据变得尤为重要。本文将深入探讨一种适用于大数据量传输的方法——流...
3. **发送XML数据**:通过`OutputStream`发送XML数据。 ```java try(OutputStream os = connection.getOutputStream()) { os.write(xmlData.getBytes("UTF-8")); } ``` 4. **读取返回值**:获取响应码并检查是否...
在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类,它允许我们发送HTTP请求并接收响应。然而,HTTP协议本身是无状态的,这意味着每次请求都是独立的,不会记住之前的交互,这对于需要...
import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = ...
在Java开发中,我们经常需要通过HTTP协议与服务器进行数据交互,其中发送JSON数据到Spring服务端是常见的操作。本文将详细介绍如何使用`HttpURLConnection`和`HttpClient`这两种方式来实现这一目标。 首先,让我们...
2. POST请求:用于提交数据到服务器进行处理,参数通过消息主体发送,可以处理大量数据,非幂等,可能会改变服务器状态。 接下来,我们将详细讲解如何使用`HttpURLConnection`实现这两种请求。 **发送GET请求** `...