You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Unirest API添加哪些请求头可被服务器接收?及Spring Boot SSL API配置问询

适配你的Spring Boot API,Unirest需添加的请求头指南

从你贴出的Spring Security配置片段来看,你的API采用了自定义认证逻辑(通过getProvider()实现的自定义AuthenticationProvider),同时配置了表单登录流程和401认证入口,咱们分场景来说明Unirest需要的请求头:

1. 登录请求(访问/logins/login)

因为你配置了formLogin(),这个接口默认接收表单格式的请求,所以Unirest需要添加以下请求头:

  • Content-Type: 必须设置为application/x-www-form-urlencoded,告诉服务器你发送的是表单数据
  • 同时记得在请求体里带上你的登录参数(比如username和password,具体字段名取决于你自定义认证逻辑里的参数要求)

示例Unirest代码:

HttpResponse<String> loginResponse = Unirest.post("https://your-api-domain/logins/login")
  .header("Content-Type", "application/x-www-form-urlencoded")
  .field("username", "your-account")
  .field("password", "your-pass")
  .asString();

2. 登录后访问受保护接口

登录成功后,你需要根据认证方式携带对应的认证信息头,分两种常见情况:

场景A:Session认证

如果你的认证是基于Session的(登录后服务器返回Session Cookie),Unirest可以自动管理Cookie,只需要开启Cookie支持:

// 初始化Unirest时配置Cookie管理器
Unirest.config().cookieSpec(CookieSpecs.DEFAULT);

这样后续请求会自动携带登录获取的Session Cookie,无需手动添加头。

场景B:Token类认证(比如JWT/API Key)

如果你的自定义AuthenticationProvider是验证请求头中的Token,通常需要添加:

  • Authorization: 如果是Bearer Token格式,值为Bearer <你的登录获取的Token>;如果是自定义API Key头,比如X-API-KEY: <你的密钥>(具体取决于你getProvider()里的认证逻辑)

示例代码:

HttpResponse<String> protectedApiResponse = Unirest.get("https://your-api-domain/api/protected-data")
  .header("Authorization", "Bearer your-access-token")
  .asString();

3. 其他可能需要的额外头

从你配置的Http401AuthenticationEntryPoint("App header")来看,这是服务器返回的响应头(认证失败时的WWW-Authenticate信息),你不需要主动发送,但如果你的API有自定义的应用标识要求,可能需要添加类似X-App-Identifier: your-app-id这类头,具体要看你认证逻辑里是否有校验。

额外注意事项

  • 如果你后续启用了CSRF保护(代码里现在注释了.csrf().disable()),那么除GET外的请求需要携带X-XSRF-TOKEN头,值从服务器返回的XSRF-TOKEN Cookie中获取。
  • 因为你的API是SSL加密的,如果是自签名证书,Unirest需要配置信任该证书(生产环境不建议忽略验证):
Unirest.config().verifySsl(false);

内容的提问来源于stack exchange,提问作者Mohammed Housseyn Taleb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:33:50