Java-Http
1 import java.io.BufferedReader;
2 import java.io.BufferedWriter;
3 import java.io.IOException;
4 import java.io.InputStreamReader;
5 import java.io.OutputStreamWriter;
6 import java.net.HttpURLConnection;
7 import java.net.MalformedURLException;
8 import java.net.URL;
9
10 /**
11 * HttpURLConnection
12 */
13 public class TestPost {
14 public static void main(String[] args) {
15 try {
16 URL url = new URL("");
17 HttpURLConnection connection = (HttpURLConnection) url.openConnection();
18 connection.setRequestProperty("encoding", "UTF-8");
19 connection.setRequestMethod("POST");
20 connection.setDoInput(true);
21 connection.setDoOutput(true);
22 //根据连接对象创建输出流 将参数写入
23 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
24 bw.write("name=zhangsan&age=25");
25 bw.flush();
26 //创建输入流 获取响应数据
27 BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
28 String str;
29 StringBuffer sb = new StringBuffer();
30 while((str = br.readLine())!=null) {
31 sb.append(str);
32 }
33 bw.close();
34 br.close();
35 } catch (MalformedURLException e) {
36 e.printStackTrace();
37 } catch (IOException e) {
38 e.printStackTrace();
39 }
40 }
41 }
1 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection; /**
* URLConnection
*/
public class TestGet {
public static void main(String[] args) {
try {
URL url = new URL("https://www.baidu.com");
//打开连接
URLConnection openConnection = url.openConnection();
//获取连接中的输入流openConnection.getInputStream()返回字节流,通过转成字符流并包装一个缓冲流
BufferedReader br = new BufferedReader(
new InputStreamReader(openConnection.getInputStream()));
String str;
StringBuffer sb = new StringBuffer();
while((str = br.readLine())!=null) {
sb.append(str);
}
System.out.println(sb);
br.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; /**
* HttpGet
*/
public class HttpClientGetTest {
public static void main(String[] args) {
HttpClient client = HttpClients.createDefault();
try {
HttpGet get = new HttpGet("http://www.baidu.com");
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity,"UTF-8"); System.out.println(result);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; /**
* HttpPost
*/
public class HttpClientPostTest {
public static void main(String[] args) {
try {
HttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("http://www.baidu.com");
//参数集合
List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
//添加数据
parameters.add(new BasicNameValuePair("name", "zhangsan"));
//将参数放到实体中
post.setEntity(new UrlEncodedFormEntity(parameters));
//设置请求方式
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity,"UTF-8");
//打印响应信息
System.out.println(result);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
import java.io.IOException; import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.CookieStore;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* @ClassName: HttpReqUtil
* @Description: http请求工具类
*/
public class HttpReqUtil { private static CookieStore cookieStore = new BasicCookieStore();
/**
* @Title: httpReqConfig
* @Description: 请求配置
* @param httpRequestBase
* @return void 返回类型
* @throws
*/
public static void httpReqConfig(HttpRequestBase httpRequestBase) {
// header配置
httpRequestBase.setHeader("User-Agent", "Mozilla/5.0");
httpRequestBase.setHeader("Accept", "*/*");
httpRequestBase.setHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
httpRequestBase.setHeader("Accept-Encoding", "gzip, deflate"); // 请求超时设置
RequestConfig config = RequestConfig.custom() //获取Builder对象
.setConnectionRequestTimeout(20000) //设置请求超时时间
.build(); //构建RequestConfig对象 httpRequestBase.setConfig(config); //将RequestConfig添加到请求中
} /**
* @Title: sendGet
* @Description: 发送get请求
* @param url
* @param param
* @return String 返回类型
* @throws
*/
public static String sendGet(String url, String param) { // 初始化
String result = null;
CloseableHttpResponse response = null;
String finalUrl = url + "?" + param;
// 创建httpclient
CloseableHttpClient httpclient = HttpClients.custom()
//请求中cookie由cookie管理,存储第一次登陆后服务器返回的cookie,之后登陆后的请求都带上该cookie
.setDefaultCookieStore(cookieStore)
.build(); try {
// 发送get请求+header
HttpGet httpGet = new HttpGet(finalUrl); // 添加header
httpReqConfig(httpGet);
response = httpclient.execute(httpGet); // 获取响应内容
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity();
result = EntityUtils.toString(entity);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭数据流
if(response!=null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
// 关闭连接
if(httpclient!=null) {
httpclient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
} /**
* @Title: sendPost
* @Description: 发送post请求
* @param url
* @param param
* @return String 返回类型
* @throws
*/
public static String sendPost(String url, String param) {
// 初始化
String result = null;
CloseableHttpResponse response = null;
// 创建httpclient
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();
try {
HttpPost httpPost = new HttpPost(url);
// 添加header
httpReqConfig(httpPost); StringEntity stringEntity = new StringEntity(param, "UTF-8");
stringEntity.setContentType("application/x-www-form-urlencoded"); // 发送post请求
httpPost.setEntity(stringEntity);
response = httpclient.execute(httpPost); // 获取响应内容
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity();
result = EntityUtils.toString(entity);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 关闭数据流
if(response!=null) {
response.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
// 关闭连接
if(httpclient!=null) {
httpclient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
} public static void main(String[] args) { // 案例:登陆接口
String url_a = "http://www.nuandao.com/public/lazyentrance";
String param_a = "isajax=1&remember=1&email=xxxxx@qq.com&password=testing1?&agreeterms=1&itype=&book=1&m=0.2757277030262314";
sendPost(url_a, param_a); // // 案例:购物车接口
// String url_b = "http://www.nuandao.com/shopping/cart";
// String param_b = "countdown=1&m=0.3810762454661424";
// sendPost(url_b, param_b); /*
* //案例 String url_c = "http://www.nuandao.com/Ajax/personal"; String
* param_c =
* "default=1&pagesign=user&url=http%3A%2F%2Fwww.nuandao.com%2Fuser%2Fmyorder&m=0.7948146575033792";
* sendPost(url_c,param_c);
*
* //案例 String url_d =
* "https://m.jiuxian.com/m_v1/goods/get_goods_num_by_province"; String
* param_d = "goods_id=28045&province_id=500"; sendPost(url_d,param_d);
*/
}
}
Java-Http的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- 在Wifi网络中嗅探明文密码(HTTP POST请求、POP等)
全世界,现在大约50%的网站没有使用SSL加密,天朝尤其多. 我们都知道通过HTTP发送的数据都是明文,没有使用任何加密,即使是在数据敏感的登录页面. 本文的目的是:如果你在不熟悉的网络环境中,要注意 ...
- Java进阶知识点8:高可扩展架构的利器 - 动态模块加载核心技术(ClassLoader、反射、依赖隔离)
一.背景 功能模块化是实现系统能力高可扩展性的常见思路.而模块化又可分为静态模块化和动态模块化两类: 1. 静态模块化:指在编译期可以通过引入新的模块扩展系统能力.比如:通过maven/gradle引 ...
- 【MFC】MFC技巧学习 当做字典来查
MFC技巧学习 摘自:http://www.cnblogs.com/leven20061001/archive/2012/10/17/2728023.html 1."属性页的添加:创建对话框 ...
- [css小技巧]input去除边框问题
border:none;是不够的 (1)在谷歌浏览器添加 outline: none;去除点击后产生的边框; (2)IE7下border: none;还会有边框存在,改用border: 0;即可,同时 ...
- Linq:从List列表中查询数据(Where查询)
获取List<Customer> customerList的函数见:http://www.cnblogs.com/yf2011/p/3369927.html 输出List中Berlin城市 ...
- (转)java.lang.RuntimeException: Missing type parameter
java.lang.RuntimeException: Missing type parameter (2015-04-07 14:35:51) 分类: 技术 程序中用到了gson的new typ ...
- DHCP(二)
提供阶段:即DHCP服务器向DHCP客户端提供预分配IP地址的阶段.网络中的所有DHCP服务器接收到客户端的DHCP Discover报文后,都会根据自己地址池中IP地址分配的优先次序选出一个IP地址 ...
- java代码用户界面网格布局GridLayout.划分为格子区域
总结:网格布局.很简单,首先要new一个 this.setlayout(new GriedLayout(3,5));里面是行数和列数 package clientFrame; //网格布局练习 i ...
- java代码,输入n多个数,求其平均值,虽有重复,但是第二次,我就乱写了
总结:对象调用方法,与在main 里直接输出没什么大的区别,少用方法, 乱搞++++ package com.c2; import java.util.Scanner; public class DD ...
- MVC中Ajax post 和Ajax Get——提交对象Model
HTTP 请求:GET vs. POST两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST.GET - 从指定的资源请求数据POST - 向指定的资源提交要处理的数据GET 基本上 ...