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的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. 【MFC】VC界面绘制双缓存

    VC界面绘制双缓存 转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/11/20/2255811.html 1.闪屏的问题在GDI的绘图 ...

  2. docker 基本学习

    Docker的应用场景: 加速本地开发和构建流程,使其更加高效.更加轻量化.本地开发人员可以构建.运行并分享Docker容器.容器可以在开发环境中构建,然后轻松地提交到测试环境中,并最终进入生产环境. ...

  3. HDU - 3949 :XOR(线性基,所有集合的不同异或和中,求从小到大第K个)

    XOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A ...

  4. C++输入流和输出流、缓冲区

    一.C++输入流和输出流 输入和输出的概念是相对程序而言的. 键盘输入数据到程序叫标准输入,程序数据输出到显示器叫标准输出,标准输入和标准输出统称为标准I/O,文件的输入和输出叫文件I/O. cout ...

  5. Oracle的闪回特性之恢复truncate删除表的数据

    Oracle的闪回特性之恢复truncate删除表的数据 SQL> show parameter flashback NAME                                 T ...

  6. Oracle恢复drop误删除的表和建用户操作

    一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询被删除的表 select * from r ...

  7. ORMLite的使用

    首先需要下载core和android两个jar http://ormlite.com/releases/ 然后拷贝到libs文件夹下并且添加为库 具体的使用看标程: School.java packa ...

  8. java使用sftp下载远程服务器文件

    使用的是springboot的项目,只是贴出主要配置与类,代码较长,可以先折叠: 参考:https://www.cnblogs.com/xyzq/p/7049369.html 操作工具类SftpUti ...

  9. ajax-简介和实现注册登录

    ajax知识点介绍: 异步Javascript和XML,用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML),也有可能是json 优点: 1. AJAX使 ...

  10. win7下cygwin 中 root用户的设置

    问题描述: cygwin 在 win10下安装完成后使用当前用户登录后看所在磁盘的文件权限是没有问题的,但在cygwin编译出来的文件的权限为空,这个问题可以使用以下方法来解决: 解决办法: 将cyg ...