Android 后台开发通信

Android 后台开发通信

在这里插入代码片public class MainActivity extends AppCompatActivity {
String TAG = MainActivity.class.getCanonicalName();
private EditText et_data_uname;
private EditText et_data_upass;
private HashMap<String, String> stringHashMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    et_data_uname = (EditText) findViewById(R.id.et_data_uname);
    et_data_upass = (EditText) findViewById(R.id.et_data_upass);
    stringHashMap = new HashMap<>();
}


public void loginGET(View view) {
    stringHashMap.put("username", et_data_uname.getText().toString());
    stringHashMap.put("password", et_data_upass.getText().toString());
    new Thread(getRun).start();

}

public void loginPOST(View view) {
    stringHashMap.put("username", et_data_uname.getText().toString());
    stringHashMap.put("password", et_data_upass.getText().toString());

    new Thread(postRun).start();
}

/**
 * get请求线程
 */
Runnable getRun = new Runnable() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        requestGet(stringHashMap);
    }
};
/**
 * post请求线程
 */
Runnable postRun = new Runnable() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        requestPost(stringHashMap);
    }
};


/**
 * get提交数据
 *
 * @param paramsMap
 */
private void requestGet(HashMap<String, String> paramsMap) {
    try {
        String baseUrl = "http://10.0.2.2:8080/TestServices/servlet/LoginDateServlet?";
        StringBuilder tempParams = new StringBuilder();
        int pos = 0;
        for (String key : paramsMap.keySet()) {
            if (pos > 0) {
                tempParams.append("&");
            }
            tempParams.append(String.format("%s=%s", key, URLEncoder.encode(paramsMap.get(key), "utf-8")));
            pos++;
        }

        Log.e(TAG,"params--get-->>"+tempParams.toString());
        String requestUrl = baseUrl + tempParams.toString();
        // 新建一个URL对象
        URL url = new URL(requestUrl);
        // 打开一个HttpURLConnection连接
        HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
        // 设置连接主机超时时间
        urlConn.setConnectTimeout(5 * 1000);
        //设置从主机读取数据超时
        urlConn.setReadTimeout(5 * 1000);
        // 设置是否使用缓存  默认是true
        urlConn.setUseCaches(true);
        // 设置为Post请求
        urlConn.setRequestMethod("GET");
        //urlConn设置请求头信息
        //设置请求中的媒体类型信息。
        urlConn.setRequestProperty("Content-Type", "application/json");
        //设置客户端与服务连接类型
        urlConn.addRequestProperty("Connection", "Keep-Alive");
        // 开始连接
        urlConn.connect();
        // 判断请求是否成功
        if (urlConn.getResponseCode() == 200) {
            // 获取返回的数据
            String result = streamToString(urlConn.getInputStream());
            Log.e(TAG, "Get方式请求成功,result--->" + result);
        } else {
            Log.e(TAG, "Get方式请求失败");
        }
        // 关闭连接
        urlConn.disconnect();
    } catch (Exception e) {
        Log.e(TAG, e.toString());
    }
}

/**
 * post提交数据
 *
 * @param paramsMap
 */
private void requestPost(HashMap<String, String> paramsMap) {
    try {
        String baseUrl = "http://10.0.2.2:8080/TestServices/servlet/LoginDateServlet";
        //合成参数
        StringBuilder tempParams = new StringBuilder();
        int pos = 0;
        for (String key : paramsMap.keySet()) {
            if (pos >0) {
                tempParams.append("&");
            }
            tempParams.append(String.format("%s=%s", key, URLEncoder.encode(paramsMap.get(key), "utf-8")));
            pos++;
        }
        String params = tempParams.toString();
        Log.e(TAG,"params--post-->>"+params);
        // 请求的参数转换为byte数组


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值