• JAVA使用apache http组件发送POST请求


    在上一篇文章中,使用了JDK中原始的HttpURLConnection向指定URL发送POST请求

    可以看到编码量有些大,并且使用了输入输出流

    传递的参数还是用“name=XXX”这种硬编的字符串进行传递的

    下面介绍一下apache commons项目中的apache http组件中的HttpClient

    用这种方式可以很快的使用键值对参数向URL发送请求

    package com.newflypig.demo;
    
    /**
     * 使用apache http组件提供的HttpClient向URL发送POST请求
     * 参数使用键值对传递
     */
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    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;
    
    
    public class SendPostDemo2 {
    
    	public static void main(String[] args) throws Exception{
    		HttpClient client=HttpClients.createDefault();
    		HttpPost post=new HttpPost("http://localhost:8080/Test1/HelloWorld");
    		
    		List<NameValuePair> parameters=new ArrayList<NameValuePair>();
    		parameters.add(new BasicNameValuePair("name", "丁丁"));
    		post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
    		
    		HttpResponse response=client.execute(post);
    		System.out.println(EntityUtils.toString(response.getEntity()));
    	}
    }
    

    apache http组件可以从http://hc.apache.org/downloads.cgi下载,最新版本4.5,跟3.X版本使用方法有较大差异。

     使用这种方式无论输入输出都封装得很舒服,大家可以借鉴一下。

    保持着对万物的好奇心。即使是玩游戏,也要停下来想想这是怎么实现的。
  • 相关阅读:
    php中php5_module、fastcgi和php-fpm是什么东西??
    Java中接口(interface)和抽象类(abstract)的区别
    Http中的status code
    排查服务器遇到的错误-查看tomcat日志命令
    Java中对list集合进行判空
    Java中的序列化、反序列化-serializable和serialversionUID
    wave文件头之笔记
    乱七八糟的流
    CentOS新建虚拟机后配置静态IP
    rabbitMQ
  • 原文地址:https://www.cnblogs.com/newflydd/p/4891887.html
Copyright © 2020-2023  润新知