在POST之前获取重定向的URL

时间:2012-09-20 07:26:04

标签: java post streaming httpurlconnection

我有一个代码,可以对URL进行POST。代码使用setFixedLengthStreamingMode,因为它事先知道POST的长度。 我有一种情况,在某些情况下,URL可以重定向到其他东西,因为启用了流模式;它无法遵循重定向。 在实际发布数据之前是否有任何方法可以检查URL是否被重定向?或者我在想错误的方向?

1 个答案:

答案 0 :(得分:1)

一般来说,不,没有。在正常的Web用例中,虽然从提交表单完成POST请求后,您应该始终根据最佳实践获得重定向,但这远远不能保证。例如,如果数据类似,它可以执行请求,如果是其他内容则不执行请求。它总是会因错误而失败。

对于某些有限的用例,可能会有一些逻辑总是被遵循,但那是个案的事情。

来自documentation

  

启用输出流时,身份验证和重定向   无法自动处理。将抛出HttpRetryException   在验证或重定向时读取响应时   需要。可以查询此异常以获取错误的详细信息。

因此,虽然重定向不会自动处理,即使您事先无法真正检查重定向,但您可以做的是您可以捕获异常并基于此自行执行步骤。