如何通过Java从URL下载和读取下载的文件

如何通过Java从URL下载和读取下载的文件,java,Java,我想用Java在两个URL之间创建一个连接。从一个URL中,我应该从.docx文件中读取Java必须从URL下载的信息,然后我应该将这些信息发送到另一个URL。我试图通过以下方式阅读.docx: import java.io.*; import java.net.*; import java.util.*; import java.nio.*; public class CheckList { public static void main(String[] args)throws

我想用Java在两个URL之间创建一个连接。从一个URL中,我应该从.docx文件中读取Java必须从URL下载的信息,然后我应该将这些信息发送到另一个URL。我试图通过以下方式阅读.docx:

import java.io.*;
import java.net.*;
import java.util.*;
import java.nio.*;

public class CheckList {

    public static void main(String[] args)throws Exception {
        String FILE = "https://exampleurl.com/download/2037";
        byte[] b = new byte[1];
        String username = "myusername";
        String password = "mypassword";
        Authenticator.setDefault(new MyAuthenticator(username, password));
        URL url = new URL(FILE);

        InputStream content = (InputStream) url.getContent();

        try{

       BufferedReader in = new BufferedReader(new InputStreamReader(content));
        String str;
         while ((str = in.readLine()) != null) {
          System.out.println(str);
         }
        }catch(IOException ex){ex.printStackTrace();}


    }

    static class MyAuthenticator extends Authenticator {
    private String login, password;

    public MyAuthenticator(String user, String pass) {
      login = user;
      password = pass;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
      System.out.println("Requesting Host  : " + getRequestingHost());
      System.out.println("Requesting Port  : " + getRequestingPort());
      System.out.println("Requesting Prompt : " + getRequestingPrompt());
      System.out.println("Requesting Protocol: "
          + getRequestingProtocol());
      System.out.println("Requesting Scheme : " + getRequestingScheme());
      System.out.println("Requesting Site  : " + getRequestingSite());
      return new PasswordAuthentication(login, password.toCharArray());
    }
  }

}

但不幸的是,它只读取网站的javaScript代码(用户必须登录的第一个页面)。有人能给我一个解决方案吗?

这可能是一个获取正确URL的问题-javascript可以动态生成该URL并发出请求。一种方法是使用您最喜欢的浏览器的开发/调试模式,查看实际请求的URL。选择一个请求docx文件的类。我不太了解Authenticator类,但它不可能用于填写远程网站显示的自定义表单以进行身份验证。它可能用于代理/防火墙所需的网络身份验证,或者用于基本身份验证,但不用于自定义的基于web的身份验证。尤其是不使用JavaScript的。