HttpURLConnection重定向,获取及设置cookie
2013-03-22 20:12
429 查看
HttpURLConnection获取重定向地址和cookie的代码如下:
public void first() throws Exception{ Map<String, String> paramsHashMap = new HashMap<String, String>(); paramsHashMap.put("IF_NO", "IF0002"); paramsHashMap.put("UID", "12345"); firstRequest(API_HTTP, paramsHashMap, "UTF-8"); } private void firstRequest(String path, Map<String, String> params, String encoding) throws Exception{ StringBuilder sb = new StringBuilder(); if(params!=null && !params.isEmpty()){ for(Map.Entry<String, String> entry : params.entrySet()){ sb.append(entry.getKey()).append('='); sb.append(URLEncoder.encode(entry.getValue(), encoding)); sb.append('&'); } sb.deleteCharAt(sb.length() - 1); } byte[] entity = sb.toString().getBytes(); HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection(); conn.setInstanceFollowRedirects(true); conn.setConnectTimeout(5000); conn.setRequestMethod("POST"); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Length", String.valueOf(entity.length)); OutputStream outStream = conn.getOutputStream(); outStream.write(entity); //获取重定向地址 redictURL= conn.getHeaderField( "Location" ); System.out.println("第一次请求重定向地址 location="+redictURL); System.out.println("第一次请求 conn.getResponseCode()="+conn.getResponseCode()); //获取cookie Map<String,List<String>> map=conn.getHeaderFields(); Set<String> set=map.keySet(); for (Iterator iterator = set.iterator(); iterator.hasNext();) { String key = (String) iterator.next(); if (key.equals("Set-Cookie")) { System.out.println("key=" + key+",开始获取cookie"); List<String> list = map.get(key); StringBuilder builder = new StringBuilder(); for (String str : list) { builder.append(str).toString(); } firstCookie=builder.toString(); System.out.println("第一次得到的cookie="+firstCookie); } } }
HttpURLConnection在请求头中设置cookie的代码如下:
conn.setRequestMethod("POST"); conn.setRequestProperty("Cookie", firstCookie);
相关文章推荐
- HttpURLConnection重定向,获取及设置cookie
- httpurlconnection中设置cookie的时机问题
- httpurlconnection中设置cookie的时机问题
- java分别通过httpclient和HttpURLConnection获取图片验证码内容
- HttpUrlConnection访问重定向接口
- Android通过HttpURLConnection与HttpClient联网代理网关设置
- HttpURLConnection 获取图片
- HttpURLConnection获取网页内容,解决乱码的通用方法
- HttpURLConnection 超时(timeout)可以通过以下两个语句来设置
- httpurlconnection_vegetables(httpurlconnection请求方式获取菜谱)
- Android 网络编程之---HttpClient 与 HttpURLConnection 共用cookie
- HttpURLConnection和HttpClient获取Json数据
- android HttpURLConnection编程详解,获取网络图片,html代码查
- HttpURLConnection发送PUT请求,设置请求头参数 json请求体
- 使用HttpURLConnection从网上获取一张图片
- HttpURLConnection获取JSON处理
- HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
- HttpURLConnection中如何设置网络超时
- NSMutableURLRequest 设置cookie 及 NSHTTPCookieStorage机制
- HttpURLConnection和HttpClient获取Json数据