java.net.URLConnection
来源:互联网 发布:ipad翻墙软件 编辑:程序博客网 时间:2024/06/07 08:29
public abstract class URLConnection extends Object
他有2个子类: HttpURLConnection (http请求)和 JarURLConnection (连接到JAR文件)
可以通过这个抽象类的实例, 建立应用程序和URL之间的通讯连接, 从而可以发送请求,获得response.
1 建立连接对象
2 设置请求的属性或附加参数对
3 使用connect()方法, 建立连接
4 调用 各种get方法获取返回的内容体和头信息
实例:
package com.exodus.weistore.utils;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.util.List;import java.util.Map;public class HttpHelper { /** * 发送get请求 * * @param url 请求地址 * @param list 请求参数 * * @return 请求结果 * * @throws IOException */ public static String sendGet(String url, List<HTTPParam> list) throws IOException { StringBuffer buffer = new StringBuffer(); //用来拼接参数 StringBuffer result = new StringBuffer(); //用来接受返回值 URL httpUrl = null; //HTTP URL类 用这个类来创建连接 URLConnection connection = null; //创建的http连接 BufferedReader bufferedReader = null; //接受连接受的参数 //如果存在参数,我们才需要拼接参数 类似于 localhost/index.html?a=a&b=b if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { buffer.append(list.get(i).getKey()).append("=") .append(URLEncoder.encode(list.get(i).getValue(), "utf-8")); //如果不是最后一个参数,不需要添加& if ((i + 1) < list.size()) { buffer.append("&"); } } url = url + "?" + buffer.toString(); } //创建URL httpUrl = new URL(url); //建立连接 connection = httpUrl.openConnection(); connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); connection.setRequestProperty("connection", "keep-alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"); connection.connect(); //接受连接返回参数 bufferedReader = new BufferedReader( new InputStreamReader(connection.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) { result.append(line); } bufferedReader.close(); return result.toString(); } /** * 发送Post请求 * * @param url 请求地址 * @param list 请求参数 * * @return 请求结果 * * @throws IOException */ public static String sendPost(String url, List<HTTPParam> list) throws IOException { StringBuffer buffer = new StringBuffer(); //用来拼接参数 StringBuffer result = new StringBuffer(); //用来接受返回值 URL httpUrl = null; //HTTP URL类 用这个类来创建连接 URLConnection connection = null; //创建的http连接 PrintWriter printWriter = null; BufferedReader bufferedReader; //接受连接受的参数 //创建URL httpUrl = new URL(url); //建立连接 connection = httpUrl.openConnection(); connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); connection.setRequestProperty("connection", "keep-alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"); connection.setDoOutput(true); connection.setDoInput(true); printWriter = new PrintWriter(connection.getOutputStream()); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { buffer.append(list.get(i).getKey()).append("=") .append(URLEncoder.encode(list.get(i).getValue(), "utf-8")); //如果不是最后一个参数,不需要添加& if ((i + 1) < list.size()) { buffer.append("&"); } } } printWriter.print(buffer.toString()); printWriter.flush(); connection.connect(); //接受连接返回参数 bufferedReader = new BufferedReader( new InputStreamReader(connection.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) { result.append(line); } bufferedReader.close(); return result.toString(); } /** * 发送get请求 * * @param url 请求地址 * @param list 请求参数 * * @return 请求结果 * * @throws IOException */ public static String sendGet(String url, Map<String, String> map) throws IOException { StringBuffer buffer = new StringBuffer(); //用来拼接参数 StringBuffer result = new StringBuffer(); //用来接受返回值 URL httpUrl = null; //HTTP URL类 用这个类来创建连接 URLConnection connection = null; //创建的http连接 BufferedReader bufferedReader = null; //接受连接受的参数 //如果存在参数,我们才需要拼接参数 类似于 localhost/index.html?a=a&b=b if (map != null && !map.isEmpty()) { for (Map.Entry<String, String> entry : map.entrySet()) { buffer.append(entry.getKey()).append("=") .append(URLEncoder.encode(entry.getValue(), "utf-8")) .append("&"); } //拼完后,去掉最后一个& buffer.deleteCharAt(buffer.length() - 1); url = url + "?" + buffer.toString(); } //创建URL httpUrl = new URL(url); //建立连接 connection = httpUrl.openConnection(); connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); connection.setRequestProperty("connection", "keep-alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"); connection.connect(); //接受连接返回参数 bufferedReader = new BufferedReader( new InputStreamReader(connection.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) { result.append(line); } bufferedReader.close(); return result.toString(); } /** * 发送Post请求 * * @param url 请求地址 * @param list 请求参数 * * @return 请求结果 * * @throws IOException */ public static String sendPost(String url, Map<String, String> map) throws IOException { StringBuffer buffer = new StringBuffer(); //用来拼接参数 StringBuffer result = new StringBuffer(); //用来接受返回值 URL httpUrl = null; //HTTP URL类 用这个类来创建连接 URLConnection connection = null; //创建的http连接 PrintWriter printWriter = null; BufferedReader bufferedReader; //接受连接受的参数 //创建URL httpUrl = new URL(url); //建立连接 connection = httpUrl.openConnection(); connection.setRequestProperty("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); connection.setRequestProperty("connection", "keep-alive"); connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0"); connection.setDoOutput(true); connection.setDoInput(true); printWriter = new PrintWriter(connection.getOutputStream()); if (map != null && !map.isEmpty()) { for (Map.Entry<String, String> entry : map.entrySet()) { buffer.append(entry.getKey()).append("=") .append(URLEncoder.encode(entry.getValue(), "utf-8")) .append("&"); } //拼完后,去掉最后一个& buffer.deleteCharAt(buffer.length() - 1); } printWriter.print(buffer.toString()); printWriter.flush(); connection.connect(); //接受连接返回参数 bufferedReader = new BufferedReader( new InputStreamReader(connection.getInputStream())); String line; while ((line = bufferedReader.readLine()) != null) { result.append(line); } bufferedReader.close(); return result.toString(); }}
0 0
- java.net.URLConnection翻译
- 关于java.net.URLConnection
- java.net.URLConnection
- java.net.URLConnection详解
- java.net.UrlConnection类的使用
- java.net.UrlConnection类的使用
- java.net.UrlConnection类的使用
- java.net.URLConnection类_java模拟浏览器
- java.net.UrlConnection类的使用
- Http请求:java.net.URLConnection java.net.HttpURLConnection
- JAVA代码java.net.URLConnection发送HTTP请求的方法
- java.net包下的URLConnection的用法
- A Comparison of java.net.URLConnection 和 HTTPClient
- 怎样用java.net.URLConnection来触发和处理HTTP请求?
- 如何使用 java.net.URLConnection 处理 HTTP 请求?
- A Comparison of java.net.URLConnection and HTTPClient
- 通过java.net.URLConnection发送HTTP请求的方法
- 通过java.net.URLConnection发送HTTP请求的方法
- 关于使用JS前台加密、JAVA后台解密的RSA实现,RSA加密和签名
- 程序员保值的4个秘密
- 优化UITableViewCell高度计算的那些事
- tomcat单独启动正常,在myeclipse中启动时加载不完也不报错
- 只有dll,生成lib、def等中间文件
- java.net.URLConnection
- BoneCP主要配置参数
- websocket最新协议的握手实现
- POJ 2136
- 通过过滤器选择对象
- php类属性成员和方法重载
- posgresql postgres_fdw使用
- lua 匹配
- css !important用法以及CSS样式使用优先级判断