HttpURLConnetion的使用
来源:互联网 发布:树莓派 ubuntu 编辑:程序博客网 时间:2024/06/05 02:38
HttpURLConnection是用来发送Http请求的类,用法如下:
<span style="font-size:18px;"> String urlStr = "http://www.xx.com";URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);conn.setDoOutput(true); conn.setReadTimeout(5000); conn.setDoInput(true); conn.setUseCaches(false); //设置Cookie信息 conn.setRequestProperty("Cookie",cookie);InputStream inputStream = conn.getInputStream();//用于将网页信息输出到磁盘 FileOutputStream fos = new FileOutputStream(new File("F:/124.txt"));ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i=-1; while((i=inputStream.read())!=-1){ //写入 baos.write(i); //写入文件 fos.write(i); } fos.flush(); System.out.println(baos.toString());conn.disconnect();</span>
这里的Cookie信息由我们来手动维护,在第一次登录或注册的时候,服务器会发送响应头,从中获得Cookie信息
<span style="font-size:18px;"> //之前的conn设置都相同 //输出参数params //格式:a="some"&b="some" conn.getOutputStream().write(params); //调用connect()后,就可以获取header信息 conn.connect(); String key = null; for(int i = 1;(key = conn.getHeaderFieldKey(i))!=null;i++ ){ System.out.print(key+":"); System.out.println(conn.getHeaderField(key)); if(key.equals("Set-Cookie")){ String cookieStr = conn.getHeaderField(key); //获取的内容为 JSESSIONID=glapZp1oHEUI05C88Oikv; path=/</span><span style="font-size:18px;"> //所以需要分割获取前半段 String[] cookies = cookoeStr.split(";"); String cookie = cookie[0]; } } //下面的代码实现了相同的功能 /*Map<String, List<String>> maps = conn.getHeaderFields(); InputStream inputStream = conn.getInputStream(); List<String> cookieList = maps.get("Set-Cookie"); for(String cookie:cookieList){ System.out.println(cookie); String[] str = cookie.split(";"); cookieStr = str[0]; System.out.println(str[0]); }*/</span>
0 0
- HttpURLConnetion的使用
- Httpurlconnetion get
- Httpurlconnetion post
- Http协议+java httpURLConnetion实现远程读取文件+chrome DEBUG Timing
- GUID使用的使用
- ${}的使用
- 的使用
- @[],@()的使用
- ->的使用
- +、-、*、/、%的使用
- &&的使用
- %:的使用
- Makefile中使用$$的使用
- Makefile中使用$$的使用
- Red5的使用--使用日志
- prefernce的使用具体使用
- 【工具使用】git 的使用
- 关于使用AsyncTaskLoader的使用
- 5.Swift 字符串的小技巧
- 总结 № 4
- spark rdd 算子
- php获取文件名后缀的方法
- 在Eclipse中用Maven创建Servlet实现输出Hello World
- HttpURLConnetion的使用
- Java Vector 介绍
- struts2之OGNL表达式
- 数据链路层的主要功能
- 一些高尔夫模拟器的比较:TruGolf、Foresight GC2、Visual Sports
- Pinterest 架构:两年内月 PV 从零到百亿
- iOS创建全局宏和建桥
- Android ViewPager使用详解
- input文本框只能输入数字