package cn.com.test;

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.util.List;
import java.util.Map; public class HttpRequestUtil {
/**
* 向指定URL发送GET方法的请求
* 如有乱码 像如下代码一样修改对应的编码,目前使用的是 GBK
* new BufferedReader(new InputStreamReader(
connection.getInputStream(),"GBK"))
* @param url 发送请求的URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return URL 所代表远程资源的响应结果
*
*/
public static String sendGet(String url, String param) {
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
// for (String key : map.keySet()) {
// System.out.println(key + "--->" + map.get(key));
// }
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream(),"GBK"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
} /**
* 向指定 URL 发送POST方法的请求
* 如有乱码 像如下代码一样修改对应的编码,目前使用的是 GBK
* new BufferedReader(new InputStreamReader(
connection.getInputStream(),"GBK"))
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream(),"GBK"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
} // public static void main(String[] args) {
// String s=HttpRequestUtil.sendGet("http://hq.sinajs.cn/", "list=sz002436");
// System.out.println("rquest:"+s);
//
// //发送 POST 请求
// String sr=HttpRequestUtil.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
// System.out.println(sr);
// }
}

  

最新文章

  1. Boost.Python简介
  2. 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!
  3. IOS-Social.framework
  4. HDU 4568 Hunter 最短路+状压DP
  5. QA要懂的Linux命令
  6. LA 3641 (置换 循环的分解) Leonardo&#39;s Notebook
  7. Hibernate(一)JDBC简介
  8. IP V4地址分类
  9. asp.net 如何改变GridView搜索出来关键字的颜色?就像百度似的,我获得的是一个集合,改变集合中关键字的集合
  10. Redis源代码分析(十一年)--- memtest内存测试
  11. excel中VBA的使用
  12. Spring mvc 下载文件处理
  13. Python解释器的安装
  14. Spring Boot搭建Web项目常用功能
  15. java基础面试题-1
  16. if语句格式及流程
  17. React Native 之轮播图swiper组件
  18. 解决yum安装 openssl-devel时产生的Multilib version problems found错误(转)
  19. 数据库SQL中Like的用法总结
  20. Convolution1D与Convolution2D区别

热门文章

  1. 寒假 D3 D Modular Inverse
  2. http://jingyan.baidu.com/article/fcb5aff78e6a48edab4a7146.html
  3. html简单框架网页制作
  4. HDU1796 How many integers can you find(容斥原理)
  5. LightOJ1060 nth Permutation(不重复全排列+逆康托展开)
  6. Unity Built-in Shader详解二
  7. HDU 3065 (AC自动机模板题)
  8. 洛谷 P1313 计算系数 Label:杨辉三角形 多项式计算
  9. MyBatis学习---使用MyBatis_Generator生成Dto、Dao、Mapping
  10. iOS移动开发周报-第25期