【发布时间】:2014-12-30 05:42:58
【问题描述】:
我已经使用 heroku 创建了一个 SSL 端点。我有一个测试环境和一个实时环境。我有一个生成 303 的 REST 调用。由于 Heroku 在其路由器中处理 SSL,我不确定如何检测我的 SEE OTHER URL 是否应该创建基于 HTTP 或 HTTPS 的 URI。下面是一些示例代码:
@GET
@Path( "/job/{jobId}" )
public Response getCallStatus( @PathParam( "jobId" ) Long jobId, @Context UriInfo uriInfo ) throws Exception {
if ( !jobService.isDone( jobId ) )
return build( Response.ok( POLLING_FREQUENCY ) );
URI jobLocation = uriInfo.getAbsolutePathBuilder().path( "result" ).build();
return build( Response.seeOther( jobLocation ) );
}
因为我的服务器没有处理 SSL(heroku 是),所以 REST 调用的绝对路径将使用 HTTP 而不是 HTTPS。如果我硬编码 HTTPS,我将破坏我的单元测试或其他不需要 HTTPS 协议的环境。
有什么想法吗?还是我误解了 heroku 是如何做到这一点的?
【问题讨论】: