我正在尝试连接到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
我知道这是输入用户名和密码的更安全的方式,但此时我只是想成功拨打电话。
答案 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。仅在开发人员环境中使用它。