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#多用于业务系统的开发 ...
随机推荐
- 前端之jQuery03 插件
jQuery.fn.extend(object) 扩展 jQuery 元素集来提供新的方法(通常用来制作插件) 增加两个插件方法: // jQuery 扩展机制 // 自己扩展两个方法 // 把我这个 ...
- POJ 2954 Triangle (pick 定理)
题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的) 匹克定理:I = (A-E) / 2 + 1; A: 表示多边形面积 I : 表示多边形内部的点的个数 E: 表示 ...
- python学习之面向对象(上)
定义了一个Animal类,该类包括了构造函数,私有方法,公有方法,静态方法,属性的方问等 双下划线"__"组成了私有成员的定义约束,其它情况则为公有成员 #_metaclass_= ...
- 常用的文件数据类型mime
有时在编程中会用到文件的类型,比如http的请求或相应header头信息,文件上传时自定义头信息等. ai application/postscript aif audio/x-aiff aifc a ...
- 【Xamarin 】MonoTouch - UIImageView响应点击事件
//圆角头像 UIImageView _avatarView = new UIImageView(new RectangleF(_blockSpace, _blockSpace, 2 * _avata ...
- spring切面配置,代理用jdk和cglib的区别
jdk的动态代理大家应该都听说过,条件是必须要有接口:cglib不要求接口,那么它是怎么实现切面的呢?很简单,通过继承,它动态的创建出一个目标类的子类,复写父类的方法,由此实现对方法的增强.看例子: ...
- Python学习书籍推荐 中英对照
Learn Python The Hard Way 笨办法学 python A Byte of Python 简明Python教程 初学者 英文版 Learning Python, 3rd Editi ...
- MySQL for Linux错误: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
参考链接:http://www.cnblogs.com/gumuzi/p/5711495.html
- jenkins使用HTML Publisher Plugin插件 拉取报告样式缺失问题解决
---------------------------------------------------------临时解决方案----亲测ok 要解决该问题,方式也比较简单,就是修改Content S ...
- java代码 求和1+1/2+1/3+1/4+1/5+1/6+.......+1/n 的值~~~~
总结:很简单的练习: s=1+1/2+1/3+1/4+1/5+1/6+.......+1/n的值:注意这里的s是float型,绝对记住不能留整数型 即s+=1/i; package com.c2; i ...