如何用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();
}