java编写Http消息头
2015-08-07 21:32
591 查看
package tk.xdatk.util; import tk.xdatk.model.HTTPParam; 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; /** * Created by XdaTk on 2014/12/21. * <p/> * HTTP请求工具类 */ public class HTTPSend { /** * 发送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.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.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(); } }
相关文章推荐
- iOS多线程与网络开发之解析xml
- 双向联想记忆神经网络
- 超级详细Tcpdump 的用法
- Android 网络学习之获取服务器的图片
- 网络超时设置connectionTimeout和SoTimeout的区别
- HTTP状态码
- TCP/IP协议三次握手
- Webbench-http压力测试
- 客户端无法tcp连接上本地虚拟机的问题(最后是linux防火墙问题)
- 黑马程序员--Java网络编程
- http://my.oschina.net/lenglingx/blog/205269
- pip install lxml因网络问题失败
- iOS开发网络篇—NSURLConnection基本使用
- Java模块 -- Http发送post数据文件,服务端Servlet接收,保存至本地
- HDU 5001 Walk (2014年鞍山赛区网络赛E题)
- caffe 网络结构几个部分简单介绍
- 三、网络---上面板---调试面板
- C/C++手动构造ARP包并发送至网络
- hdu 4043 2011北京赛区网络赛D 概率+大数 **
- 【Apache学习】httpd2.4 版本下 https配置