java urlconnection inputstream_有时httpurlConnection.getinputstream执行得太慢

我们有下一个代码。

有时候我们应该在最后一行等10-20-40秒。

有什么问题?

爪哇1.4

URL url = ...;

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoInput(true);

conn.setDoOutput(true);

conn.setUseCaches(false);

conn.connect();

OutputStream out = conn.getOutputStream();

ObjectOutputStream outStream = new ObjectOutputStream(out);

try

{

outStream.writeObject(objArray);

}

finally

{

outStream.close();

}

InputStream input = conn.getInputStream();

更新:

下一个代码修复了Eclipse中的问题。

但是它仍然不能通过Java WebStask:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setDoInput(true);

conn.setDoOutput(true);

conn.setUseCaches(false);

System.setProperty("http.keepAlive", "false"); //

conn.connect();

但为什么呢?

再次更新!

错误是固定的!:)

我们不是在一个班级而是在两个班级里工作。

第二节课有以下几行:

URL url = ...

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestProperty("Content-Length", "1000"); //

conn.connect();

注:

setRequestProperty("Content-Length", "1000")

是问题的根本原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是将文件下载改为下载普通文件的代码: ```java import java.io.*; import java.net.*; public class DownloadFile { public static void main(String[] args) { try { // 获取用户输入的文件 URL 和保存文件名 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入要下载的文件的URL:"); String url = reader.readLine(); System.out.print("请输入要保存的文件名:"); String fileName = reader.readLine(); // 创建 URL 实例并打开连接 URL fileUrl = new URL(url); HttpURLConnection connection = (HttpURLConnection) fileUrl.openConnection(); // 设置请求方法为 GET connection.setRequestMethod("GET"); // 获取文件长度 int contentLength = connection.getContentLength(); // 创建输入流和输出流 InputStream inputStream = connection.getInputStream(); FileOutputStream outputStream = new FileOutputStream(fileName); // 缓存区大小 byte[] buffer = new byte[4096]; // 已读取的字节数 int bytesRead = 0; // 循环读取文件内容到缓存区并写入到本地文件 while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } // 关闭输入流和输出流 inputStream.close(); outputStream.close(); System.out.println("文件下载完成"); } catch (IOException e) { e.printStackTrace(); } } } ``` 这个代码与之前的代码的主要区别在于,这个代码使用了 `HttpURLConnection` 类替代了 `URLConnection` 类,因为 `HttpURLConnection` 类支持 HTTP 协议的特性,可以更好地进行文件下载。同时,这个代码中将 `URLConnection` 类的 `getInputStream()` 方法改为了 `HttpURLConnection` 类的 `getInputStream()` 方法,以获得更好的性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值