2024年4月12日发(作者:)
通过http传送接收数据
分类: JAVA 2007-07-03 21:27 449人阅读 评论(1) 收藏 举报
通过http传输文件一般分为传送和接收,简单说来就是你向别人发送文件和接收别人传
给你的文件。下面大致说一下这两种情况。
1、 向别人发送文件
目前觉得简单的方式还是通过http以流的形式发送文件,下面给出一部分代码:
/**
* 通过http以流形式传递参数
*
* @param url
* 请求地址
* @param xmlValue
* xml字符串
* @return true post成功,post失败
*/
public static boolean post(String sUrl, String xmlValue) {
try {
if (sUrl == null || ().equals("")) {
throw new Exception("发送指令时目标URL地址无效");
}
// 声明hc变量
URL url = new URL(sUrl);
HttpURLConnection hc = (HttpURLConnection) nnection();
// 设置hc的一些属性
uestMethod("POST");
utput(true);
// 得到outputStream,使之能通过其写入数据
OutputStream os = putStream();
// 进一步优化输出流,使之能写入字符串
OutputStreamWriter osw = new OutputStreamWriter(os, "gb2312");
(xmlValue);
();
();
();
// 用输入流传输数据,以及得到数据
InputStream in = utStream();
();
// 断开connection
nect();
} catch (Exception e) {
tackTrace();
return false;
}
return true;
}
通过这个方法,可以通过http传输数据。
1、 接收别人发过来的数据
接收别人发过来的数据,有两种方法,一种通过字符流,一种通过输入流,但一般都要
有一个地址,比如localhost:8080/app/或者 localhost:8080/app/test,
前者是一个jsp,后者一般是一个servlet,对于向struts这么普及的今天,它应该不是一个
action ,因为后面没有.do嘛:)
下面我们用servlet来演示一下这个例子:(是写在dopost方法里)
A、通过输入流读取
String strFileName = "";
RandomAccessFile file = null;
ServletInputStream sis = null;
try {
// 把文件定义成可读写的
file = new RandomAccessFile(strFileName, "rw");
// 读出输入流
sis = utStream();
// 定义一个大小为1024的字节数组
byte[] buf = new byte[1024];
// 从输入流中读出字节到定义的字节数组
int len = (buf, 0, 1024);
// 循环读入字节,然后写到文件输出流中
while (len != -1) {
(buf, 0, len);
len = (buf, 0, 1024);
}
} catch (Exception e) {
n(“出现错误!”);
} finally {
// 关闭文件
if (file != null) {
();
}
// 关闭输入流
if (sis != null) {
();
}
}
上面是通过输入流来读取的接收内容,这一种方法基本是通用的,因为在文件传输的过
程中本身是以流的形式过来的,但是如果你知道对方就是通过字符串的形式写入的,那么完
全可以通过用字符读取的方式去读取。
B、通过字符读取
// 定义一个可访问的文件对象
RandomAccessFile file = null;
// 读出输入流
BufferedReader br = null;
String strFileName = "";
try {
// 把文件定义成可读写的
file = new RandomAccessFile(strFileName, "rw");
String line;
br = der();
while ((line = ne()) != null) {
line += " ";
((new String(es("ISO-8859-1"), "gb2312"))
.getBytes());
}
} catch (Exception e) {
n(“出现错误!”);
} finally {
// 关闭文件
if (file != null)
();
// 关闭输入流
if (br != null)
();
}


发布评论