纯Java实现REST请求:POST获Session Cookie后发起授权GET请求
我刚好处理过类似的场景,用curl完全可以搞定这个流程,核心就是把第一次POST请求返回的Cookie保存下来,再在后续的GET请求里带上它。
完整两步命令示例:
第一步:发起POST请求并保存Session Cookie
你给出的命令可以补全成这样(记得替换实际的用户名和密码):curl -X POST -c session_cookie.txt 'http://localhost:8465/myapp/j_spring_security_check' -d 'j_username=your_actual_username&j_password=your_actual_password'-c session_cookie.txt:这个参数会把服务器返回的Cookie(包含Session ID)保存到session_cookie.txt文件中-d:用来传递Spring Security认证所需的表单参数,因为j_spring_security_check接口通常接收表单格式的用户名密码
第二步:携带保存的Cookie发起授权GET请求
用刚才保存的Cookie文件发起需要授权的GET请求:curl -b session_cookie.txt 'http://localhost:8465/myapp/your_target_get_endpoint'-b session_cookie.txt:告诉curl读取这个文件里的Cookie并随请求发送,这样服务器就能识别你的会话,不会返回未授权错误
额外小技巧:
如果不想生成中间文件,也可以用curl的管道把两个请求连起来,不过文件方式更直观,也方便调试(你可以打开session_cookie.txt查看里面的Session ID):
curl -X POST -c - 'http://localhost:8465/myapp/j_spring_security_check' -d 'j_username=xxx&j_password=xxx' | curl -b - 'http://localhost:8465/myapp/your_target_endpoint'
内容的提问来源于stack exchange,提问作者GRK
相关产品推荐
相关产品推荐

