Android—网络请求

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

/**
 * Connect to the internet
 * 
 * @author crane
 * 
 */
public class HttpTools {
    /**
     * Post data to server
     * 
     * @param sUrl
     * @param entity
     * @return
     */
    public static String postData(String sUrl, MultipartEntity entity) {
        String destUrl = "";
        destUrl = sUrl;
        String sResult = "";
        // instantiate HttpPost object from the url address
        HttpEntityEnclosingRequestBase httpRequest = new HttpPost(destUrl);
        try {
            httpRequest.setEntity(entity);
            // execute the post and get the response from servers
            HttpResponse httpResponse = new DefaultHttpClient()
                    .execute(httpRequest);
            int code = httpResponse.getStatusLine().getStatusCode();
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                // get the result
                String strResult = EntityUtils.toString(httpResponse
                        .getEntity());
                sResult = strResult;
                System.out.println(strResult);
            } else {
                System.out.println("Error Response"
                        + httpResponse.getStatusLine().toString());
            }
        } catch (Exception e) {
            System.out.println("error occurs");
        }
        return sResult;
    }

    /**
     * Get data from server
     * 
     * @param urlPath
     * @return
     */
    public static String getData(String sUrl) {
        String urlPath = sUrl;
        ByteArrayOutputStream outStream = null;
        String sResult = "";
        try {
            outStream = new ByteArrayOutputStream();
            byte[] data = new byte[1024];
            int len = 0;
            URL url = new URL(urlPath);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            InputStream inStream = conn.getInputStream();
            while ((len = inStream.read(data)) != -1) {
                outStream.write(data, 0, len);
            }
            inStream.close();
            sResult = new String(outStream.toByteArray()).trim();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return sResult;
    }

    public static String post(String sUrl, List<NameValuePair> parameters) {
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(sUrl);
        String sResult = "";

        try {
            HttpEntity entity = new UrlEncodedFormEntity(parameters, HTTP.UTF_8); // 设置编码,防止中文乱码
            httpPost.setEntity(entity);
            // httpClient执行httpPost表单提交
            HttpResponse response = httpClient.execute(httpPost);
            // 得到服务器响应实体对象
            HttpEntity responseEntity = response.getEntity();
            if (responseEntity != null) {
                sResult = EntityUtils.toString(responseEntity, "utf-8");
                System.out.println("表单上传成功!");
            } else {
                System.out.println("服务器无响应!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            httpClient.getConnectionManager().shutdown();
        }
        return sResult.replace(",", ",");
    }

}

所需jar包:httpmime-4.1.3.jar

 

posted @ 2014-04-25 11:29  crane13  阅读(198)  评论(0编辑  收藏  举报