公司要将自己的产品封装一个WebService平台,所以最近开始学习使用Java发送Http请求的内容。这一块之前用PHP的时候写的也比较多,从用最基本的Socket和使用第三方插件都用过。

学习了Java两种方式,一种是用java.net.URLConnection,另一种则是大名鼎鼎的HttpClient。效率上没有做深入研究,使用java.net.URLConnection比较麻烦,而HttpClient就比较惬意。

java.net.URLConnection方法:

private static void urlConnectionPost() {
    StringBuilder responseBuilder = null;
    BufferedReader reader = null;
    OutputStreamWriter wr = null;

URL url;
    try {
        url = new URL(TEST_URL);
        URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        conn.setConnectTimeout(1000 * 5);
        wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write("");
        wr.flush();

// Get the response
        reader = new BufferedReader(new InputStreamReader(conn
                .getInputStream()));
        responseBuilder = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            responseBuilder.append(line + "\n");
        }
        wr.close();
        reader.close();

System.out.println(responseBuilder.toString());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

HttpClient方法:

private static void httpClientPost() {
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(TEST_URL);

try {
        ContentProducer cp = new ContentProducer() {
            public void writeTo(OutputStream outstream) throws IOException {
                Writer writer = new OutputStreamWriter(outstream, "UTF-8");
                writer.write("");
                writer.flush();
            }
        };

post.setEntity(new EntityTemplate(cp));
        HttpResponse response = client.execute(post);
   
        System.out.println(EntityUtils.toString(response.getEntity()));
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

使用Java发送Http请求的内容的更多相关文章

  1. Java发送Http请求并获取状态码

    通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断. try { URL u = new URL("http://10.1.2.8:8080/fqz/page ...

  2. 通过java发送http请求

    通常的http请求都是由用户点击某个连接或者按钮来发起的,但是在一些后台的Java程序中需要发送一些get或这post请求,因为不涉及前台页面,该怎么办呢? 下面为大家提供一个Java发送http请求 ...

  3. Java发送HTTPS请求

    前言 上篇文章介绍了 java 发送 http 请求,大家都知道发送http是不安全的 .我也是由于对接了其他企业后总结了一套发送 https的工具.大家网上找方法很多的,但是可不是你粘过来就能用啊, ...

  4. Java发送Http请求

    package com.liuyu.test; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...

  5. 编写爬虫(spider)的预备知识:用java发送HTTP请求

    使用原生API来发送http请求,而不是使用apache的库,原因在于这个第三方库变化实在太快了,每个版本都有不小的变化.对于程序员来说,使用它反而会有很多麻烦,比如自己曾经写过的代码将无法复用. 原 ...

  6. JAVA发送HttpClient请求及接收请求结果

    1.写一个HttpRequestUtils工具类,包括post请求和get请求 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 ...

  7. JAVA发送HttpClient请求及接收请求结果过程

    1.写一个HttpRequestUtils工具类,包括post请求和get请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  8. (转)Java发送http请求(get 与post方法请求)

    本文转载于:http://bijian1013.iteye.com/blog/2166855 package com.bijian.study; import java.io.BufferedRead ...

  9. Java发送socket请求的工具

    package com.tech.jin.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import ...

随机推荐

  1. IDEA配置spring

    大半天都在看spring,以前总是看不下去,这次慢慢来,慢慢看. 看那些基础的,倒是还不错.好多都是关于helloworld的,写完helloworld,觉得不怎么形象.于是写了动物,作为接口. (1 ...

  2. 用pillow和 opencv做透明通道的两图混全(blend)

    from PIL import Image as image foreground = image.open("donkey.png") background = image.op ...

  3. session喜欢丢值且占内存,Cookis不安全,用什么可以代替呢?

    localstorage sessionstorage 在线资料 webdb 这些都是基于HTML5的新特性! 此外还可以使用服务器文件.DB等.

  4. Atom打造优雅的MarkDown 编辑器

    1.下载Atom https://atom.io/ 2.安装Atom 双击自动安装,会默认安装到C盘,无法修改. 3.安装simplified-chinese-menu 插件 这是一个可以将软件汉化的 ...

  5. HBase – 存储文件HFile结构解析

    本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. HFile是HBase存储数据的文件组织形式,参考BigTable的SSTable和Hadoop的TFile ...

  6. Neutron 是怎么实现虚拟三层网络的

    Neutron 对虚拟三层网络的实现是通过其 L3 Agent (neutron-l3-agent).该 Agent 利用 Linux IP 栈.route 和 iptables 来实现内网内不同网络 ...

  7. Java学习笔记XML(3)

    XML简介 XML即可扩展的标记语言.因此该语言中所有的标签都是没有预先定义的,开发者可以自己随意的指定. 目前为止所有的标记的语言都属于开源的语言.由W3C组织进行一个基本的维护. 因此大家学习这些 ...

  8. “全栈2019”Java第九十章:内部类可以向上或向下转型吗?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. vue 中的computed和watch

    计算属性 通过计算得来的属性 computed:是一个计算属性,用来监听属性的变化 computed里面的方法调用的时候是不需要加() 另外里面的方法必须要有一个返回值   computed里面的方法 ...

  10. [总结帖]Web小白的基础恶补帖

    1. jQuery实现按钮点击跳转网页 <script src="js/jquery/jQuery-2.2.0.min.js" type="text/javascr ...