gpt4 book ai didi

java - 是否可以在获取响应之前检查 HTTP post 请求的身份验证状态?

转载 作者:行者123 更新时间:2023-12-01 14:18:27 25 4
gpt4 key购买 nike

我正在使用 java.net.HttpURLConnection。

我首先将 post 请求的正文写入与 URLConnection 对象关联的 OutputStream。

完成此操作后,我关闭 OutputStream,然后调用 getInputStream() 或 getResponseCode() 或 getHeaderFields()。那时我会发现所提供的凭据是否被视为有效或无效。

这是有问题的,因为如果用户凭据因某种原因被拒绝,我不想再次发出相同的发布请求(并且必须重新上传其内容,其中可能包括大文件)。

由于在调用 getResponseCode() 或 getHeaderFields() 后尝试调用 getOutputStream() 会引发异常,因此如何确保在尝试上传数据之前接受用户凭据?

有办法解决这个问题还是这只是服务器的配置方式?

最佳答案

简短的回答是:你不能这样做。

基本身份验证是无状态的。当您执行 POST/PUT 时,用户凭据将作为该 HTTP 请求的 header 发送。在整个操作完成之前(即在发送数据有效负载之后),它们不会被处理。

为了完成您所说的操作,您需要编写一个 Web 服务,通过 session 管理分别管理登录和文件/数据上传,允许您首先进行身份验证(返回某种 session token ),然后通过单独的 HTTP 请求发送数据。

编辑添加:实际上,您可以通过简单地对也需要身份验证的内容执行 GET 来解决此问题。如果成功,您就知道 POST 也会成功,除非服务器端的凭据在两个请求之间失效。我不建议这样做,但它会起作用。

关于java - 是否可以在获取响应之前检查 HTTP post 请求的身份验证状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com