Java 在url中传递用户和密码时无法使用基本身份验证
我有一个soap端点、用户和密码。Java 在url中传递用户和密码时无法使用基本身份验证,java,http,authentication,url,Java,Http,Authentication,Url,我有一个soap端点、用户和密码。 user=“Org API/uAPI529457959-E784399” password=“t61/B=09{v” HttpClient导入 import org.apache.commons.codec.binary.Base64; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.MultiThreadedHttpConnection
user=“Org API/uAPI529457959-E784399”
password=“t61/B=09{v” HttpClient导入
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
我在请求头中使用了基本身份验证
String userPassword = user + ":" + password;
setRequestHeader("Authorization", "Basic " + new String(Base64.encodeBase64(userPassword.getBytes())));
它工作得很好
但是当我试图在end pont url中传递用户和密码时。
它给出了以下日志
2016年12月2日下午12:51:44
org.apache.commons.httpclient.auth.AuthChallengeProcessor
selectAuthScheme信息:2002年12月选择的基本身份验证方案,
2016年12:51:44 PM org.apache.commons.httpclient.HttpMethodDirector
processWWWAuthChallenge信息:没有可用于BASIC的凭据
“AXIS”@example.com:443
在传入url之前,我对用户和密码进行了编码。我不知道如何解决此问题。请寻求帮助。您正在使用Apache HttpClient,因此您应该通过以下方式做得更好:
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("username", "userpass");
provider.setCredentials(AuthScope.ANY, credentials);
HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
HttpResponse response = client.execute(new HttpGet("http://domain.com"));
检查这个伟大的例子:您正在使用Apache HttpClient,因此您应该通过以下方式做得更好:
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("username", "userpass");
provider.setCredentials(AuthScope.ANY, credentials);
HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
HttpResponse response = client.execute(new HttpGet("http://domain.com"));
检查这个很好的例子:在我的用例中它可能会有帮助,但我特别希望像@sbmc7这样点击在这个用例中使用HttpURLConnection它在我的用例中可能会有帮助,但我特别希望像@sbmc7这样点击在这个用例中使用HttpURLConnection