• android app与服务器交互


    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;
            }
    
        }
    
    }
  • 相关阅读:
    清除控件某个事件的所有响应函数
    docker常用命令
    WPF 如何自定义一个弹框
    C#目录:藏锋
    杂谈001:晨曦Dawn的重新连接
    SpringBoot-08:SpringBoot采用json的方式实现前后台通用的配置文件
    Mysql:存储过程游标不进循环的原因详解
    Java中如何创建一个确保唯一的名字,文件名
    C#:设置CefSharp的一些参数,比如忽略安全证书
    C#:在AnyCPU模式下使用CefSharp
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/4682085.html
Copyright © 2020-2023  润新知