gpt4 book ai didi

java - 在 url 中传递用户和密码时无法使用基本身份验证

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:25:54 25 4
gpt4 key购买 nike

我有一个 soap 端点、用户和密码。
user = "组织 API/uAPI529457959-e784379"
密码 = "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;

我在请求 header 中使用了基本身份验证

String userPassword = user + ":" + password;
setRequestHeader("Authorization", "Basic " + new String(Base64.encodeBase64(userPassword.getBytes())));

它工作正常。

但是当我尝试在 end-pont url 中传递用户和密码时。 http://user:password@example.com

它给出了以下日志。

Dec 02, 2016 12:51:44 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme INFO: basic authentication scheme selected Dec 02, 2016 12:51:44 PM org.apache.commons.httpclient.HttpMethodDirector processWWWAuthChallenge INFO: No credentials available for 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"));

检查这个很好的例子:HttpClient Basic Authentication

关于java - 在 url 中传递用户和密码时无法使用基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40926944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com