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


    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);
    }
    
    }
    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());
    }
    }
    in = response.getEntity().getContent();
    if (in != null) {
    bre = ResourceUtil.readStream(in);
    }
    
    }
    }
    
    
    } 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(";");
    }
    String sck = sb.toString();
    if (sck.length() > 0) {
    post.setHeader("Cookie", sck);
    }
    
    }
    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());
    }
    }
    inputStream = response.getEntity().getContent();
    }
    }
    
    } 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(";");
    }
    
    }
    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();
    }
    }
    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());
    }
    }
    HttpEntity entity = response.getEntity();
    InputStream inputStream = entity.getContent();
    if (inputStream != null) {
    ret = ResourceUtil.readStream(inputStream);
    inputStream.close();
    }
    }
    }
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    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(";");
    }
    String sck = sb.toString();
    if (sck.length() > 0) {
    delete.setHeader("Cookie", sck);
    }
    
    }
    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());
    }
    }
    in = response.getEntity().getContent();
    if (in != null) {
    bre = ResourceUtil.readStream(in);
    }
    
    }
    }
    
    
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    
    
    return bre;
    }
    
     
    
    }
  • 相关阅读:
    并发编程学习笔记(二十九、Unsafe)
    并发编程学习笔记(二十八、ConcurrentHashMap,Java8 ConcurrentHashMap)
    并发编程学习笔记(二十七、ConcurrentHashMap,Java7 ConcurrentHashMap)
    并发编程学习笔记(二十六、ConcurrentHashMap,Java8 HashMap简述)
    位运算符
    并发编程学习笔记(二十五、ConcurrentHashMap,Java7 HashMap简述)
    并发编程学习笔记(二十四、AQS总结)
    并发编程学习笔记(二十三、CopyOnWriteArrayList源码分析)
    我二十多岁了,至今依然一事无成
    从零开始手写 mybatis(一)MVP 版本
  • 原文地址:https://www.cnblogs.com/jinzhiming/p/5362512.html
Copyright © 2020-2023  润新知