如何用Java代码写get或post请求带cookies类似浏览器按F5刷新效果,

xgia7 2017-05-18 08:01:16
如何用Java代码写get或post请求带cookies类似浏览器按F5刷新效果,
一般情况下,游客用浏览器访问某个网页,后台 会记录此网页被访问次数,当按下浏览器的F5刷新页面后,页面访问次数会增加一次,当再次按下F5刷新,页面访问次数会再次增加一个值,如果做到用HttpConection,HttpGet,这类api在代码中实现请求该页面后,页面访问数量也会增加,请求一次增加一次,多次发送请求就增加多少次,这样,我做了一个,但是这样不行代码如下:
----------------------------------------------
public static void main(String[] args){

doGet("222");
System.out.println("=================>>: 停留1, ");

doGet("222");
System.out.println("=================>>: 停留2, ");

doGet("222");
System.out.println("=================>>: 停留3, ");

doGet("222");
System.out.println("=================>>: 停留4, ");

doGet("222");
System.out.println("=================>>: 停留5, ");

} catch (IOException e) {
e.printStackTrace();
}
}





public static void doGet(String urlStr) throws IOException{
String sessionId = "";
String key = "";
String cookieVal = "";
urlStr = "http://sz.58.com/hezu/29925100345012x.shtml";
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.connect(); //到此步只是建立与服务器的tcp连接,并未发送http请求
/**
* 设置cookie
*/
if(!sessionId.equals("")){
connection.setRequestProperty("Cookie", sessionId);
}
for(int i=1;(key=connection.getHeaderField(i))!=null;i++){
cookieVal = connection.getHeaderField(i);
cookieVal = cookieVal.substring(0,cookieVal.indexOf(";")>-1?cookieVal.indexOf(";"):cookieVal.length()-1);
sessionId = sessionId + cookieVal + ";";
}

//直到getInputStream()方法调用请求才真正发送出去
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while((line=br.readLine()) != null){
sb.append(line);
sb.append("\n");
}
System.out.println(sb.toString());
br.close();
connection.disconnect();
}
...全文
234 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧