您的位置:首页 > 理论基础 > 计算机网络

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

2011-02-23 14:20 423 查看
Java代码

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
);

}

}

转自:http://stephenjqj.javaeye.com/blog/477194
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: