java+httpclient—— 一个简单的post请求

Posted 小白龙白龙马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java+httpclient—— 一个简单的post请求相关的知识,希望对你有一定的参考价值。

package jkcs;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
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.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

public class jiekoumoni 
{

    public static void main(String[] args) throws ClientProtocolException, IOException, Exception 
    {
    
        
        CloseableHttpClient client = HttpClients.createDefault();    //创建一个http客户端
        
        HttpPost httpPost = new HttpPost("http://www.oschina.net/");// 通过httpPost方式来实现我们的get请求
        
        httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/56.0.2924.87 Safari/537.36");//伪装成浏览器请求
        
        CloseableHttpResponse Response = client.execute(httpPost);  // 通过client调用execute方法,得到我们的执行结果就是一个response,所有的数据都封装在response里面了
        
        
        //-----------------------------------------------------------------------

        
        System.out.println(Response.getStatusLine());  //HTTP/1.1 200 OK
        
        System.out.println(Response.getProtocolVersion());  //HTTP/1.1
        
        System.out.println(Response.getStatusLine().getStatusCode());  //200
        
        
        //-----------------------------------------------------------------------
        
        
        
        HttpEntity httpEntity = Response.getEntity();         //获取某个固定的响应头
        
        System.out.println(httpEntity.getContentType()); //Content-Type: text/html
        
        

        
        
        //-----------------------------------------------------------------------
        
        
        System.out.println(Response.getFirstHeader("Content-Type"));//Content-Type: text/html
        System.out.println(Response.getFirstHeader("Date"));   //Date: Sun, 03 May 2020 06:58:16 GMT
        
        //-----------------------------------------------------------------------
        
        Header[] headers = Response.getAllHeaders();    //获取所有响应头
        for (Header header : headers) 
        {
           System.out.println("Key : " + header.getName()+",         ," +" Value : " + header.getValue());
        }
        
        
        
        //-----------------------------------------------------------------------
        
        
        
        Response.close();  // 关闭
        
        
        

    }

}

 

 

执行结果:

 

HTTP/1.1 301 Moved Permanently
HTTP/1.1
301


Content-Type: text/html
Content-Type: text/html
Date: Sun, 03 May 2020 07:47:35 GMT


Key : Date, , Value : Sun, 03 May 2020 07:47:35 GMT
Key : Content-Type, , Value : text/html
Key : Content-Length, , Value : 239
Key : Connection, , Value : keep-alive
Key : Server, , Value : Tengine
Key : Location, , Value : https://www.oschina.net/

 

以上是关于java+httpclient—— 一个简单的post请求的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient的简单运用

java HttpClient POST请求

工作总结:mvc分层架构

JAVA网络爬爬学习之HttpClient+Jsoup

Java HttpClient 似乎正在缓存内容

Java 中的PO VO DTO BO