java如何设置auther


设置 HTTP 认证头(Authorization)
在 Java 中设置 HTTP 请求的 Authorization 头,通常用于身份验证(如 Basic Auth、Bearer Token 等)。以下是几种常见场景的实现方式:
使用 HttpURLConnection 设置 Basic Auth
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
String username = "user";
String password = "pass";
String authString = username + ":" + password;
String encodedAuth = Base64.getEncoder().encodeToString(authString.getBytes());
URL url = new URL("https://api.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("Authorization", "Basic " + encodedAuth);
使用 OkHttp 设置 Bearer Token
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
String token = "your_token_here";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://api.example.com")
.addHeader("Authorization", "Bearer " + token)
.build();
try (Response response = client.newCall(request).execute()) {
System.out.println(response.body().string());
}
使用 Apache HttpClient 设置 OAuth
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
String oauthToken = "oauth_token_here";
CloseableHttpClient client = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("https://api.example.com");
httpGet.setHeader("Authorization", "OAuth " + oauthToken);
client.execute(httpGet);
使用 Spring RestTemplate 设置自定义头
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestTemplate;
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "CustomAuthScheme your_token");
HttpEntity<String> entity = new HttpEntity<>(headers);
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.exchange(
"https://api.example.com",
HttpMethod.GET,
entity,
String.class
).getBody();
注意事项
- 编码处理:Basic Auth 需将用户名密码用 Base64 编码。
- 安全性:避免硬编码敏感信息,建议从配置或环境变量读取。
- HTTPS:认证信息明文传输时务必使用 HTTPS。






