Java(Eclipse)中的WSDL连接问题

时间:2016-02-09 17:03:20

标签: java web-services soap wsdl

我正在尝试连接到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我知道这是输入用户名和密码的更安全的方式,但此时我只是想成功拨打电话。

1 个答案:

答案 0 :(得分:0)

基本身份验证的用户名密码是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。仅在开发人员环境中使用它。