展开全部

更直接一点吧,用jdk自带的urlconnection来实现,无需依赖其他库。下边的e68a84e8a2ad3231313335323631343130323136353331333361313962示例实现了post和get方法。

示例如下:

Java代码

public class HttpUtil {

public static final String CHARSET = "UTF-8";

public static String post(String url, Map postParams) {

HttpURLConnection con = null;

OutputStream osw = null;

InputStream ins = null;

try {

con = (HttpURLConnection) new URL(url).openConnection();

con.setDoInput(true);

con.setRequestMethod("POST");

con.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

if (null != postParams) {

con.setDoOutput(true);

String postParam = encodeParameters(postParams);

byte[] bytes = postParam.getBytes(CHARSET);

con.setRequestProperty("Content-Length",

Integer.toString(bytes.length));

osw = con.getOutputStream();

osw.write(bytes);

osw.flush();

}

int resCode = con.getResponseCode();

if (resCode < 400) {

ins = con.getInputStream();

} else {

ins = con.getErrorStream();

}

return readContent(ins);

} catch (IOException e) {

} finally {

try {

if (osw != null) {

osw.close();

}

if (ins != null) {

ins.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

public static String get(String url) {

HttpURLConnection con = null;

OutputStream osw = null;

InputStream ins = null;

try {

con = (HttpURLConnection) new URL(url).openConnection();

con.setRequestMethod("GET");

int resCode = con.getResponseCode();

if (resCode < 400) {

ins = con.getInputStream();

} else {

ins = con.getErrorStream();

}

return readContent(ins);

} catch (IOException e) {

} finally {

try {

if (osw != null) {

osw.close();

}

if (ins != null) {

ins.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

return null;

}

private static final String readContent(InputStream ins) throws IOException {

StringBuilder sb = new StringBuilder();

BufferedReader br = new BufferedReader(new InputStreamReader(ins,

HttpUtil.CHARSET));

if (ins != null) {

String line;

while ((line = br.readLine()) != null) {

sb.append(line);

}

}

return sb.toString();

}

public static String encodeParameters(Map postParams) {

StringBuilder buf = new StringBuilder();

if (postParams != null && postParams.size() > 0) {

for (Map.Entry tmp : postParams.entrySet()) {

try {

buf.append(URLEncoder.encode(tmp.getKey(), CHARSET))

.append("=")

.append(URLEncoder.encode(tmp.getValue(), CHARSET))

.append("&");

} catch (java.io.UnsupportedEncodingException neverHappen) {

}

}

buf.deleteCharAt(buf.length() - 1);

}

return buf.toString();

}

}

本回答由提问者推荐

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

代替httpclient JAVA_除了HttpClient,Java还有什么类似HttpClient的技术相关推荐

  1. java httpclient 关闭_【Java系列007】HttpClient调用:你考虑过关闭连接、并发了吗?...

    你好!我是miniluo,今天和你分享使用HttpClient过程中,未考虑释放连接和并发导致的坑. HttpClient在项目中还是比较常见的,主要都是通过GET或POST请求第三方以获取响应结果. ...

  2. 网厨管理java_点菜网---Java开源生鲜电商平台-技术选型(源码可下载)

    centos 安装php7.0.2 PHP7.0正式版已经在2015年11月份左右发布,目前是PHP7.0.2版本,本人最早是从2015年8月php7的第一个测试版跟起,现在正式版发布. linux版 ...

  3. java爬虫之基于httpclient的简单Demo(二)

    转载自 java爬虫之基于httpclient的简单Demo(二) 延续demo1的 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一),demo2出炉啦,大家想学爬虫都可以从这 ...

  4. java爬虫教程 百度云_java视频教程java爬虫实战项目httpclient hbase springmvc solr

    资源内容: java视频教程java爬虫实战项目httpclient hbase springmvc solr|____猫了个咪-更多IT精品课程.html|____猫了个咪--it视频论坛.url| ...

  5. 快递100快递java_快递100 java 示例API 返回结果乱码 之替代方案

    快递100官方给出的java 版示例API无法使用,返回结果全是乱码,只能自己写一个. 采用httpClient,不采用官方给出的URL方式.返回结果编码方式为UTF-8. import java.i ...

  6. 12306订票助手java_开源免费Java Swing C/S版本12306订票助手

    Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: 整个程序除了速度和效率高 ...

  7. HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?

    .net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...

  8. 布线问题分支限界法java_大型布线:Java云应用程序缺少的技术

    布线问题分支限界法java 您是否曾经想过,为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务? 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 (跳 ...

  9. akka actor java_现代化的Java(三)——从Hello Akka说起

    接下来打算花一些篇幅介绍一些异步编程的范式,也算是给自己一个学习笔记吧. 异步编程是个很诡异的领域,每个人都在谈论它,但是工作中很少有人能驾驭:很多很新潮很热的异步编程概念,运用起来却完全达不到它宣称 ...

最新文章

  1. Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
  2. 基于jQuery 2.0的源代码分析
  3. mipi LCD 的CLK时钟频率与显示分辨率及帧率的关系
  4. 【UVA624 01背包中的路径问题】
  5. “面试不败计划”:面试题基础二
  6. matplotlib的优点_超详细matplotlib基础介绍!!!
  7. 解决H5在微信浏览器或QQ浏览器修改title的问题
  8. java一到6章上机代码_JAVA练习题(第6章).ppt
  9. mybatis generator自动生成sqlmap代码的不完善之处以及解决方法
  10. 如何将.frm,.MYD,.MYI文件导入数据库
  11. 层次分析法原理讲解 python手搓实现-故事带入小白详解版
  12. pq磁盘分区工具的初次使用
  13. win7默认网关不可用_Win7系统填写静态IP的方法是什么?
  14. ElasticSearch之elasticsearch-users用法及修改集群密码
  15. 学术规范与论文写作(期末考试答案)(方便检索版)
  16. c语言实现cgi之文件上传和下载
  17. 飞机大战(案例详解)
  18. 微信收到消息很慢无法连接服务器,为什么微信接收消息总会延迟?4个原因要注意,解决方法在这里...
  19. 把.app文件打包ipa 利用Payload 打包ipa
  20. WiTricity科技助力中国电动汽车无线充电标准

热门文章

  1. PAT乙级(1003 我要通过!)
  2. Oracle在HPUX IA64平台登陆缓慢问题分析
  3. 当SQL Server爱上Linux:AVAILABILITY_MODE 和 DataGuard 的实践差距
  4. 并发高?可能是编译优化引发有序性问题
  5. CANN AICPU算子耗时分析及优化探索
  6. 面试官问我:如何减少客户对交付成果的质疑
  7. 华为云携手马栏山文创园助力湖南广电荣获国家广电总局多项大奖
  8. 这可能是 Python 面向对象编程的最佳实践
  9. 高频Linux命令小结(新手向)
  10. 全新一代云服务器S6,重新定义性价比