HttpClient 配合 Servlet 测试应用

GetMethod 默认是开启   followRedirects(true);的 , 所以不管服务器是使用sendRedirect 还是 forward , 客户端都会执行到跳转的页面。

如果手动设置followRedirects(false) , 则sendRedirect()的页面 只能通过getMethod.getHeader("location").getValue()来获得 , 执行getMethod.getResponseAsString()得到的是空字符串。

如果手动设置followRedirects(false) , 则forward的页面 , 通过getMethod.getResponseAsString()就可以得到,getMethod.getHeader("location")返回null 。

这也就是forward也sendRedirect的区别。

 

总结一点就是sendRedirect的就是通过getMethod.getHeader("location").getValue()来取得 , 而

forward的跳转是发生在服务器内部的 , 不管你怎么设置 , 都会执行到那个页面。

 

通常用postMethod提交之后获得Header("location").getValue();是服务器使用了sendRedirect , 而如果

Header("location")为空的时候 , 是服务器使用了forward , 但是不管是那种方法 , 服务器都会在检查用户名密码之后

将登陆成功与否设置值在session中 , 对应httpclient就是有这么个cookie , 没登陆成功就是没这个cookie.

但是我们无需理会cookie的管理 , 因为可以使用httpClient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY)

让HttpClient使用类似浏览器的方式管理cookie,这也使得httpclient的使用更为简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值