zl程序教程

您现在的位置是:首页 >  前端

当前栏目

Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete .

HTTP代码 访问 请求 四种
2023-09-11 14:19:23 时间
String url = "http://www.baidu.com";

//将要访问的url字符串放入HttpPost中

HttpPost httpPost= new HttpPost(url);

//请求头 放置一些修改http请求头和cookie

httpPost.setHeader("Accept", "application/json");

......

//如果是HttpPost或者HttpPut请求需要在请求里加参数,

//而HttpGet或者HttpDelete请求则可以直接拼接到url字符串后面

//向HttpPost中加入参数

List<NameValuePair> values = new ArrayList<NameValuePair>();

values.add(new NameValuePair("id", "1"));

values.add(new NameValuePair("name", "xiaohong"));

httpPost.setEntity(new UrlEncodeFormEntity(values, HTTP.UTF_8));  //进行转码

 

//实例HttpClient 并执行带有HttpPost的方法,返回HttpResponse 响应,再进行操作

HttpClient httpClient = new DefaultHttpClient();

HttpResponse httpResponse = httpClient.execute(httpPost);

int statusCode = httpResponse.getStatusLine().getStatusCode();  //返回状态码 ,用来进行识别或者判断访问结果

if(statusCode == 200){

  Instream in = httpResponse.getEntity().getContent();  //要处理该数据流是否为GZIP流

}

 

 

示例代码如下:

package cn.dratek.haoyingsheng.manager.client;


import cn.dratek.haoyingsheng.manager.util.ResourceUtil;
import net.dratek.browser.http.Cookie;
import net.dratek.browser.http.CookieManager;
import net.dratek.browser.http.URL;
import org.apache.http.*;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;

public class HttpNetClient {

    /**
     * 所有get 请求底层调用方法
     *
     * @param url 请求url
     * @return byte[] response data
     */
    public static byte[] doGet(String url) {
        InputStream in;
        byte[] bre = null;
        HttpResponse response;
        CookieManager manager = CookieManager.getInstance();
        if (url != null && url.length() != 0) {
            URL myURL = URL.parseString(url);
            Cookie[] cookies = manager.getCookies(myURL);
            HttpGet httpGet = new HttpGet(url);
            if (cookies != null && cookies.length > 0) {
                StringBuilder sb = new StringBuilder();
                for (Cookie ck : cookies) {
                    sb.append(ck.name).append('=').append(ck.value).append(";");
                }
                String sck = sb.toString();
                if (sck.length() > 0) {
                    httpGet.setHeader("Cookie", sck);
                }//if
            }//if
            httpGet.setHeader("Accept-Encoding", "gzip, deflate");
            httpGet.setHeader("Accept-Language", "zh-CN");
            httpGet.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
            try {
                response = new DefaultHttpClient().execute(httpGet);
                if (response != null) {
                    int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode == 200 || statusCode == 403) {
                        Header[] headers = response.getHeaders("Set-Cookie");
                        if (headers != null && headers.length > 0) {
                            for (Header header : headers) {
                                manager.setCookie(myURL, header.getValue());
                            }//for
                        }//if
                        in = response.getEntity().getContent();
                        if (in != null) {
                            bre = ResourceUtil.readStream(in);
                        }//if

                    }//if
                }//if
            } //try
            catch (IOException e) {
                e.printStackTrace();
            }
        }
        return bre;
    }

    /**
     * 所有Post 请求底层调用方法
     *
     * @param url    请求url
     * @param values 传递的参数
     * @return byte[] 返回数据 or null
     */
    public static byte[] doPost(String url, List<NameValuePair> values) {
        System.out.println("url = " + url);
        byte[] bytes = null;
        HttpResponse response;
        InputStream inputStream = null;
        CookieManager manager = CookieManager.getInstance();
        if (url != null && url.length() != 0) {
            URL myurl = URL.parseString(url);
            Cookie[] cookies = manager.getCookies(myurl);
            HttpPost post = new HttpPost(url);
            if (cookies != null && cookies.length > 0) {
                StringBuilder sb = new StringBuilder();
                for (Cookie ck : cookies) {
                    sb.append(ck.name).append('=').append(ck.value).append(";");
                }//for
                String sck = sb.toString();
                if (sck.length() > 0) {
                    post.setHeader("Cookie", sck);
                }//if
            }//if
            post.setHeader("Accept-Encoding", "gzip, deflate");
            post.setHeader("Accept-Language", "zh-CN");
            post.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
            DefaultHttpClient client = new DefaultHttpClient();
            try {
                if (values != null && values.size() > 0) {
                    post.setEntity(new UrlEncodedFormEntity(values, HTTP.UTF_8));
                }
                response = client.execute(post);
                if (response != null) {
                    int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode == 200 || statusCode == 403) {
                        Header[] headers = response.getHeaders("Set-Cookie");
                        if (headers != null && headers.length > 0) {
                            for (Header header : headers) {
                                manager.setCookie(myurl, header.getValue());
                            }//for
                        }//if
                        inputStream = response.getEntity().getContent();
                    }//if
                }//if

            }//try
            catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (inputStream != null) {
                bytes = ResourceUtil.readStream(inputStream);
            }
        }
        return bytes;
    }

    /**
     * PUT基础请求
     *
     * @param url    请求地址
     * @param values 提交参数
     * @return byte[] 请求成功后的结果
     */
    public static byte[] doPut(String url, List<NameValuePair> values) {
        byte[] ret = null;

        CookieManager manager = CookieManager.getInstance();
        if (url != null && url.length() > 0) {
            URL myUrl = URL.parseString(url);
            StringBuilder sb = new StringBuilder();
            Cookie[] cookies = manager.getCookies(myUrl);
            if (cookies != null && cookies.length > 0) {
                for (Cookie cookie : cookies) {
                    sb.append(cookie.name).append("=").append(cookie.value).append(";");
                }//for
            }//if
            HttpPut request = new HttpPut(url);
            String sck = sb.toString();
            if (sck.length() > 0) {
                request.setHeader("Cookie", sck);
            }
            request.setHeader("Accept-Encoding", "gzip, deflate");
            request.setHeader("Accept-Language", "zh-CN");
            request.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
            DefaultHttpClient client = new DefaultHttpClient();
            if (values != null && values.size() > 0) {
                try {
                    UrlEncodedFormEntity entity;
                    entity = new UrlEncodedFormEntity(values);
                    request.setEntity(entity);
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }//if
            try {
                HttpResponse response = client.execute(request);
                if (response != null) {
                    StatusLine statusLine = response.getStatusLine();
                    int statusCode = statusLine.getStatusCode();
                    if (statusCode == 200 || statusCode == 403) {
                        Header[] headers = response.getHeaders("Set-Cookie");
                        if (headers != null && headers.length > 0) {
                            for (Header header : headers) {
                                manager.setCookie(myUrl, header.getValue());
                            }
                        }//if
                        HttpEntity entity = response.getEntity();
                        InputStream inputStream = entity.getContent();
                        if (inputStream != null) {
                            ret = ResourceUtil.readStream(inputStream);
                            inputStream.close();
                        }//if
                    }//if
                }//if
            } //try
            catch (IOException e) {
                e.printStackTrace();
            }
        }//if
        return ret;
    }

    /**
     * Delete基础请求
     *
     * @param url 请求地址
     * @return 请求成功后的结果
     */
    public static byte[] doDelete(String url) {
        InputStream in;
        byte[] bre = null;
        HttpResponse response;
        CookieManager manager = CookieManager.getInstance();
        if (url != null && url.length() != 0) {
            URL myurl = URL.parseString(url);
            Cookie[] cookies = manager.getCookies(myurl);
            HttpDelete delete = new HttpDelete(url);
            if (cookies != null && cookies.length > 0) {
                StringBuilder sb = new StringBuilder();
                for (Cookie ck : cookies) {
                    sb.append(ck.name).append('=').append(ck.value).append(";");
                }//for
                String sck = sb.toString();
                if (sck.length() > 0) {
                    delete.setHeader("Cookie", sck);
                }
            }//for
            delete.setHeader("Accept-Encoding", "gzip, deflate");
            delete.setHeader("Accept-Language", "zh-CN");
            delete.setHeader("Accept", "application/json, application/xml, text/html, text/*, image/*, */*");
            try {
                response = new DefaultHttpClient().execute(delete);
                if (response != null) {
                    int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode == 200 || statusCode == 403) {
                        Header[] headers = response.getHeaders("Set-Cookie");
                        if (headers != null && headers.length > 0) {
                            for (Header header : headers) {
                                manager.setCookie(myurl, header.getValue());
                            }//for
                        }//if
                        in = response.getEntity().getContent();
                        if (in != null) {
                            bre = ResourceUtil.readStream(in);
                        }
                    }//if
                }//if
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return bre;
    }

}