java httpurlconnection 发送cookie时,cookie要在Post前发送

来源:互联网 发布:vm怎么删除虚拟机mac 编辑:程序博客网 时间:2024/06/05 14:55
public InputStream getStream(URL url,String post,URL cookieurl){          HttpURLConnection connection;          String cookieVal = null;          String sessionId = "";          String key=null;          if(cookieurl!=null){                          try{                  connection = (HttpURLConnection)cookieurl.openConnection();                  for (int i = 1; (key = connection.getHeaderFieldKey(i)) != null; i++ ) {                      if (key.equalsIgnoreCase("set-cookie")) {                          cookieVal = connection.getHeaderField(i);                          cookieVal = cookieVal.substring(0, cookieVal.indexOf(";"));                          sessionId = sessionId+cookieVal+";";                      }                  }                  InputStream in = connection.getInputStream();                  System.out.println(sessionId);              }catch(MalformedURLException e){                  System.out.println("url can't connection");                  return null;              }catch(IOException e){                  System.out.println(e.getMessage());                  return null;              }          }            try {              connection = (HttpURLConnection)url.openConnection();              //这个要写在Post前,否则会取不到值,原因我不知道              if(cookieurl!=null){                  connection.setRequestProperty("Cookie", sessionId);              }              if(post!=""){                  connection.setDoOutput(true);                  connection.setRequestMethod("POST");                  connection.getOutputStream().write(post.getBytes());                  connection.getOutputStream().flush();                  connection.getOutputStream().close();              }              int responseCode = connection.getResponseCode();              int contentLength = connection.getContentLength();              // System.out.println("Content length: "+contentLength);              if (responseCode != HttpURLConnection.HTTP_OK ) return(null);              InputStream in = connection.getInputStream();              return(in);          }          catch(Exception e) {              // System.out.println(e);              // e.printStackTrace();              return(null);          }                }  

原创粉丝点击