如何为Java版Jira REST Client API配置代理?
Java版Jira REST Client API设置代理的解决方案
核心思路
Java版Jira REST Client(JRJC)底层基于Apache HttpClient实现,因此可以通过自定义配置代理的HttpClient来创建JiraRestClient实例,绕过工厂类未提供代理设置的限制。
具体实现代码
- 先构建配置好代理的Apache HttpClient:
import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; // 代理配置信息 String proxyHost = "你的代理服务器地址"; int proxyPort = 8080; // 替换为实际代理端口 String proxyUser = "代理用户名(无则留空)"; String proxyPass = "代理密码(无则留空)"; // 配置代理认证(如果需要) CredentialsProvider credsProvider = new BasicCredentialsProvider(); if (proxyUser != null && !proxyUser.isEmpty()) { credsProvider.setCredentials( new AuthScope(proxyHost, proxyPort), new UsernamePasswordCredentials(proxyUser, proxyPass) ); } // 创建带代理的HttpClient CloseableHttpClient httpClient = HttpClients.custom() .setProxy(new HttpHost(proxyHost, proxyPort)) .setDefaultCredentialsProvider(credsProvider) .build();
- 基于自定义HttpClient创建JiraRestClient:
import com.atlassian.jira.rest.client.api.JiraRestClient; import com.atlassian.jira.rest.client.auth.BasicAuthenticationHandler; import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClient; import com.atlassian.jira.rest.client.internal.async.DefaultHttpClientRequestFactory; import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Base64; // Jira认证信息 String jiraUsername = "你的Jira账号"; String jiraPassword = "你的Jira密码"; String jiraUrl = "https://你的Jira实例地址"; // 生成Base64认证串 String authStr = Base64.getEncoder().encodeToString( (jiraUsername + ":" + jiraPassword).getBytes(StandardCharsets.UTF_8) ); BasicAuthenticationHandler authHandler = new BasicAuthenticationHandler(authStr); // 创建JiraRestClient实例 URI jiraUri = URI.create(jiraUrl); JiraRestClient jiraRestClient = new AsynchronousJiraRestClient( jiraUri, authHandler, httpClient, new DefaultHttpClientRequestFactory() );
注意事项
- 若代理无需认证,可直接跳过CredentialsProvider的配置步骤。
- 使用完JiraRestClient后,务必调用
jiraRestClient.close()关闭客户端,释放HTTP连接资源。 - 确保项目依赖中包含Apache HttpClient相关包(JRJC通常会间接引入,若出现版本冲突需手动调整依赖版本)。
内容的提问来源于stack exchange,提问作者Chavjoh
相关产品推荐
相关产品推荐

