HttpClient之Get请求和Post请求示例 编辑


HttpClient的撑持在HTTP/1.1标准中界说的一切的HTTP办法:GET, HEAD, POST, PUT, DELETE, TRACE 和 OPTIONS。每有一个办法都有一个对应的类:HttpGet,HttpHead,HttpPost,HttpPut,HttpDelete,HttpTrace和HttpOptions。一切的这些类均完成了HttpUriRequest接口,故可以作为execute的履行参数使用。恳求URI是可以使用恳求的一致资本标识符。 HTTP恳求的URI包括一个协议方案protocol scheme,主机名host name,,可选的端口optional port,资本的途径resource path,可选的查询optional query和可选的片段optional fragment。

 

head,put,delete,trace HttpClient撑持这些办法,

大多数浏览器不撑持这些办法,原因是Html 4中对 FORM 的method办法只撑持两个get和post,许多浏览器还都依然是根据html4的。

 

一般会在JAVA中经过代码调用URL进行远端办法调用,这些办法有的是Get恳求方法的,有的是POST恳求方法的,为此,总结一例,贴出以便查阅。

依靠JAR包如下图:



 

示例代码:

Java代码  保藏代码

package com.wujintao.httpclient;  

  

import java.io.IOException;  

import java.io.InputStream;  

  

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;  

import org.apache.commons.httpclient.HttpClient;  

import org.apache.commons.httpclient.HttpException;  

import org.apache.commons.httpclient.HttpStatus;  

import org.apache.commons.httpclient.NameValuePair;  

import org.apache.commons.httpclient.methods.GetMethod;  

import org.apache.commons.httpclient.methods.PostMethod;  

import org.apache.commons.httpclient.params.HttpMethodParams;  

import org.junit.Test;  

  

public class TestCase {  

  

    @Test  

    public void testGetRequest() throws IllegalStateException, IOException {  

        HttpClient client = new HttpClient();  

        StringBuilder sb = new StringBuilder();  

        InputStream ins = null;  

        // Create a method instance.  

        GetMethod method = new GetMethod("http://www.metabase.cn/");  

        GetMethod method = new GetMethod("http://www.tongxinglong.com/");  

        GetMethod method = new GetMethod("http://www.jinanwuliangye.com/");  

        GetMethod method = new GetMethod("http://www.qclchina.com/");  

        GetMethod method = new GetMethod("http://www.vipfuxin.com/");  

        GetMethod method = new GetMethod("http://www.minnan888.net/");  

        GetMethod method = new GetMethod("http://www.lcsyt.com/");  

        // Provide custom retry handler is necessary  

        method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,  

                new DefaultHttpMethodRetryHandler(3, false));  

        try {  

            // Execute the method.  

            int statusCode = client.executeMethod(method);  

            System.out.println(statusCode);  

            if (statusCode == HttpStatus.SC_OK) {  

                ins = method.getResponseBodyAsStream();  

                byte[] b = new byte[1024];  

                int r_len = 0;  

                while ((r_len = ins.read(b)) > 0) {  

                    sb.append(new String(b, 0, r_len, method  

                            .getResponseCharSet()));  

                }  

            } else {  

                System.err.println("Response Code: " + statusCode);  

            }  

        } catch (HttpException e) {  

            System.err.println("Fatal protocol violation: " + e.getMessage());  

        } catch (IOException e) {  

            System.err.println("Fatal transport error: " + e.getMessage());  

        } finally {  

            method.releaseConnection();  

            if (ins != null) {  

                ins.close();  

            }  

        }  

        System.out.println(sb.toString());  

    }  

  

    @Test  

    public void testPostRequest() throws HttpException, IOException {  

        HttpClient client = new HttpClient();  

        PostMethod method = new PostMethod("http://lf.yunnanw.cn/");  

        PostMethod method = new PostMethod("http://www.ceocbs.com/");  

        PostMethod method = new PostMethod("http://www.yzbljp.com/");  

        PostMethod method = new PostMethod("http://www.hyyfscl.com/");  

        PostMethod method = new PostMethod("http://www.shoudashou.com/");  

        method.setRequestHeader("Content-Type",  

                "application/x-www-form-urlencoded;charset=gb2312");  

        NameValuePair[] param = { new NameValuePair("age", "11"),  

                new NameValuePair("name", "jay"), };  

        method.setRequestBody(param);  

        int statusCode = client.executeMethod(method);  

        System.out.println(statusCode);  

        method.releaseConnection();  

    }  

  

}  


你可能感兴趣的:(java,接口,浏览器,method,protocol)