HttpClient GET和POST请求

Posted 愤怒的绿萝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpClient GET和POST请求相关的知识,希望对你有一定的参考价值。

package com.rogue.hclient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;

/**
 * 测试HttpClient功能
 * @author djoker
 *
 */
public class HClientTest {

    HttpClient client = new HttpClient();
    
    //get功能测试
    public void getTest(){
        String uri = "http://172.16.100.20/cgi-bin/ht.cgi?method=getMethodTest";
        GetMethod method = new GetMethod(uri);
        try {
            int code = client.executeMethod(method);
            System.out.println(code);
            if(200 == code){
                
//                StringBuffer sb = new StringBuffer();
//                sb.append(method.getResponseBodyAsString());    //不推荐使用,会有警告,如果读取的内容过多,会导致超过最大读取值
//                System.out.println(sb.toString());
                
                InputStream is = method.getResponseBodyAsStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
                String line = null;
                while((line = br.readLine()) != null){
                    System.out.println(line);
                }
            }
        } catch (HttpException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    //POST测试
    public void postTest(){
        String uri = "http://172.16.100.20/cgi-bin/ht.cgi";
        String content = "method=PostMethod&paramer=paramer";   //参数
        PostMethod method = new PostMethod(uri);
        RequestEntity requestEntity = new StringRequestEntity(content); //字符串请求参数
        method.setRequestEntity(requestEntity); //设置请求参数
        try {
            int code = client.executeMethod(method);
            System.out.println(code);
            if(200 == code){
                InputStream is = method.getResponseBodyAsStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
                String line = null;
                while((line = br.readLine()) != null){
                    System.out.println(line);
                }
            }
        } catch (HttpException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args){
        HClientTest hct = new HClientTest();
        hct.getTest();
        System.out.println("--------");
        hct.postTest();
    }
}

 

以上是关于HttpClient GET和POST请求的主要内容,如果未能解决你的问题,请参考以下文章

Java学习心得之 HttpClient的GET和POST请求

Android--httpclient模拟post请求和get请求

HttpClient GET和POST请求

HttpClient的post请求和get请求

HttpClient 4.5.3( get和post请求)

HttpClient和AsynchttpClient的get与post请求方式