Android Get,Post,AsyncHttpClient向服务器提交数据几种方式

来源:互联网 发布:单片机串口通信程序 编辑:程序博客网 时间:2024/06/03 21:35

这里写图片描述

activaty_login.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_login"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.sj_xml.LoginActivity">    <EditText        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="admin"        android:id="@+id/et_main_uname"        />    <EditText        android:id="@+id/et_main_upass"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="123456" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="loginByGet"        android:text="登录(GET)" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="loginByPost"        android:text="登录(POST)" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="loginByAsyncHttpClient"        android:text="登录(AsyncHttpClient)" /></LinearLayout>

LoginActivaty.Java

package com.example.sj_xml;import android.os.AsyncTask;import android.preference.PreferenceActivity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.RequestParams;import com.loopj.android.http.TextHttpResponseHandler;import org.apache.http.Header;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class LoginActivity extends AppCompatActivity {    private EditText et_main_uname;    private EditText et_main_upass;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        et_main_uname = (EditText) findViewById(R.id.et_main_uname);        et_main_upass = (EditText) findViewById(R.id.et_main_upass);    }    public void loginByGet(View view) {        String uname = et_main_uname.getText().toString();        String upass = et_main_upass.getText().toString();        String path = "http://192.168.253.1:8090/front/getlogin.xhtml";        //可变数组        new MyTask().execute(uname, upass, path, "GET");    }    public void loginByPost(View view) {        String uname = et_main_uname.getText().toString();        String upass = et_main_upass.getText().toString();        String path = "http://192.168.253.1:8090/front/getlogin.xhtml";        //可变数组        new MyTask().execute(uname, upass, path, "POST");    }    public void loginByAsyncHttpClient(View view) {        String uname = et_main_uname.getText().toString();        String upass = et_main_upass.getText().toString();        String path = "http://192.168.253.1:8090/front/getlogin.xhtml";        AsyncHttpClient asyncHttpClient=new AsyncHttpClient();        RequestParams requestParams=new RequestParams();        requestParams.put("uname",uname);        requestParams.put("upwd",upass);        asyncHttpClient.post(path,requestParams,new TextHttpResponseHandler(){            @Override            public void onSuccess(int statusCode, Header[] headers, String responseBody) {                super.onSuccess(statusCode, headers, responseBody);                Toast.makeText(LoginActivity.this, responseBody, Toast.LENGTH_SHORT).show();            }            @Override            public void onFailure(int statusCode, Header[] headers, String responseBody, Throwable error) {                super.onFailure(statusCode, headers, responseBody, error);            }        });    }    class MyTask extends AsyncTask {        private HttpURLConnection connection;        private URL url;        @Override        protected Object doInBackground(Object[] objects) {            //获取参数的值            String uname = objects[0].toString();            String upass = objects[1].toString();            String path = objects[2].toString();            String type = objects[3].toString();            String str = "uname=" + uname + "&upwd=" + upass;            try {                if ("GET".equals(type)) {                    //用GET方式提交                    path = path + "?" + str;                    url = new URL(path);                    connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod(type);                } else if ("POST".equals(type)) {                    //用POST方式提交                    url = new URL(path);                    connection = (HttpURLConnection) url.openConnection();                    connection.setRequestMethod(type);                    //设置contentType  contentLength                    connection.setRequestProperty("Content-Length", str.length() + "");                    connection.setRequestProperty("Content-Type", "text/plain;charset=UTF-8");                    //设置允许对外输出数据                    connection.setDoOutput(true);                    //将用户名和密码提交到服务器                    connection.getOutputStream().write(str.getBytes());                }                connection.setConnectTimeout(5000);                if (connection.getResponseCode() == 200) {                    InputStream is = connection.getInputStream();                    BufferedReader br = new BufferedReader(new InputStreamReader(is));                    String result = br.readLine();                    return result;                }            } catch (MalformedURLException e) {                e.printStackTrace();            } catch (IOException e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onPostExecute(Object o) {            super.onPostExecute(o);            String s = (String) o;            Toast.makeText(LoginActivity.this, s, Toast.LENGTH_SHORT).show();        }    }}
0 0
原创粉丝点击