Java (Eclipse) 中的 WSDL 连接问题

WSDL Connection Issue in Java (Eclipse)

我正在尝试连接到 WSDL 文件并不断收到此错误:

Bad auth String (could not parse username/password): String index out of range: -1

我能够毫无错误地连接到本地 WSDL 文件,但现在我正在尝试连接外部服务器上的文件。我获得了用户名和密码,但不确定如何传递这些参数。

这里是我输入登录凭据的地方:

     MessageFactory messageFactory = MessageFactory.newInstance();
     SOAPMessage soapMessage = messageFactory.createMessage();       
     String loginPassword = "myusername:mypassword";
     soapMessage.getMimeHeaders().addHeader("Authorization", "Basic " + loginPassword);

另一方面,我在 Soap Request 之后和 Soap Response 之后打印语句,这似乎有效。 Bad auth String (could not parse username/password): String index out of range: -1 我知道这是更安全的输入用户名和密码的方法,但此时我只是想成功拨打电话。

基本身份验证的用户名密码是 Base 64 编码的。希望这会有所帮助。

我有一个用于 Inputstream 的基本身份验证示例:-

public static InputStream getInputStream(String location) throws IOException {
        URL url = new URL(location);
        URLConnection uc = url.openConnection();
        String username = "";
        String password = "";
        String userpass = username + ":" + password;
        String basicAuth = "Basic "
                + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass
                        .getBytes());
        uc.setRequestProperty("Authorization", basicAuth);
        return uc.getInputStream();
}

另一种非常不安全的方法是 http://user:password@www.example.com。仅在开发人员环境中使用它。