码迷,mamicode.com
首页 > 移动开发 > 详细

android app与服务器交互

时间:2015-07-28 12:45:50      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

package mydemo.mycom.demo2.service;

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.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import mydemo.mycom.demo2.utils.StreamTools;

/**
 * Created by Administrator on 2015/5/20.
 */
public class NetService {

    //使用URL的Get 方式请求服务器
    public static String loginByGet(String username, String password) {
        try {
            String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" + password;
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setRequestMethod("GET");
            int code = conn.getResponseCode();
            if (code == 200) {
                //请求成功
                InputStream is = conn.getInputStream();
                String result = StreamTools.readInputStream(is);
                return result;
            } else {
                //请求失败
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //使用URL的Post 方式请求服务器
    public static String loginByPost(String username, String password) {
        try {
            String path = "http://192.168.1.110:1010/UserInfo/Login";
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setRequestMethod("POST");
            String data = "username=" + username + "&password=" + password;

            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Content-Length", data.length() + "");

            //post 的方式 实际上是浏览器把数据 写给了服务器
            conn.setDoInput(true);
            OutputStream os = conn.getOutputStream();
            os.write(data.getBytes());
            int code = conn.getResponseCode();
            if (code == 200) {
                //请求成功
                InputStream is = conn.getInputStream();
                String result = StreamTools.readInputStream(is);
                return result;
            } else {
                //请求失败
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //使用HttpClient的Get 方式请求服务器 (HttpClient 过时)
    public static String loginByClientGet(String username, String password) {
        try {
            HttpClient client = new DefaultHttpClient();
            String path = "http://192.168.1.110:1010/UserInfo/Login?username=" + username + "&password=" + password;
            HttpGet httpget = new HttpGet(path);
            HttpResponse response = client.execute(httpget);
            int code = response.getStatusLine().getStatusCode();
            if (code == 200) {
                //请求成功
                InputStream is = response.getEntity().getContent();
                String result = StreamTools.readInputStream(is);
                return result;
            } else {
                //请求失败
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //使用HttpClient的Post 方式请求服务器 (HttpClient 过时)
    public static String loginByClientPost(String username, String password) {
        try {
            HttpClient client = new DefaultHttpClient();
            String path = "http://192.168.1.110:1010/UserInfo/Login";
            HttpPost httppost = new HttpPost(path);
            //指定要提交的数据实体
            List<NameValuePair> list = new ArrayList<NameValuePair>();
            list.add(new BasicNameValuePair("username", username));
            list.add(new BasicNameValuePair("password", password));
            httppost.setEntity(new UrlEncodedFormEntity(list, "UTF_8"));
            HttpResponse response = client.execute(httppost);
            int code = response.getStatusLine().getStatusCode();
            if (code == 200) {
                //请求成功
                InputStream is = response.getEntity().getContent();
                String result = StreamTools.readInputStream(is);
                return result;
            } else {
                //请求失败
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

//将InputStream 转为 String

package mydemo.mycom.demo2.utils;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;

public class StreamTools {

    //InputStream 转为 String
    public static String readInputStream(InputStream is)
    {
        try
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int len =0;
            byte[] buffer = new byte[1024];
            while((len=is.read(buffer))!=-1)
            {
                baos.write(buffer,0,len);
            }
            is.close();
            baos.close();

            byte[] result = baos.toByteArray();
            String temp = new String(result);
            return temp;
        }catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }

    }

}

 

android app与服务器交互

标签:

原文地址:http://www.cnblogs.com/zoro-zero/p/4682085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!