Android之向服务器提交数据(POST,GET,AsyncHttpClient)
2017-03-05 09:09
761 查看
1.布局 <?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_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" android:id="@+id/et_main_uanem"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:id="@+id/et_main_upwd"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="loginGET" android:text="登录(GET)"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="loginPOST" android:text="登录(POST)"/> </LinearLayout> <?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_main_post" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" android:id="@+id/et_Async_uanem"/> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:id="@+id/et_Async_upwd"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="loginAsyncHttpClient" android:text="登录(AsyncHttpClient)"/> </LinearLayout> 2.java代码 使用Android原生态提交数据(POST,GET) public class MainActivity extends AppCompatActivity { private EditText et_main_uanem; private EditText et_main_upwd; private HttpURLConnection connection; private URL url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main_uanem = (EditText) findViewById(R.id.et_main_uanem); et_main_upwd = (EditText) findViewById(R.id.et_main_upwd); } public void loginGET(View view) { String uname = et_main_uanem.getText().toString(); String upwd = et_main_upwd.getText().toString(); String path = "http://192.168.43.149:8080/Mysqldenglu.xhtml"; new MyTask().execute(uname, upwd, path, "GET"); } public void loginPOST(View view) { String uname = et_main_uanem.getText().toString(); String upwd = et_main_upwd.getText().toString(); String path = "http://192.168.43.149:8080/Mysqldenglu.xhtml"; new MyTask().execute(uname, upwd, path, "POST"); } class MyTask extends AsyncTask { @Override protected Object doInBackground(Object[] params) { //获取参数的值 String uname = params[0].toString(); String upwd = params[1].toString(); String path = params[2].toString(); String type = params[3].toString(); String str="sname=" + uname + "&spwd=" + upwd; //判断提交方式是GET还是POST try { if ("GET".equals(type)) { path = path + "?"+str; Log.i("哈哈", path); url = new URL(path); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(type); } else if ("POST".equals(type)) { url = new URL(path); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(type); //设置contentType contentLength connection.setRequestProperty("Content-Length",str.length()+""); connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); //设置允许对外输出数据 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)); Str 4000 ing result = br.readLine(); return result; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); String s = (String) o; Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show(); } } } 使用第三方框架提交数据(AsyncHttpClient) public class MainActivity extends AppCompatActivity { private EditText et_main_uanem; private EditText et_main_upwd; private HttpURLConnection connection; private URL url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_main_uanem = (EditText) findViewById(R.id.et_main_uanem); et_main_upwd = (EditText) findViewById(R.id.et_main_upwd); } public void loginGET(View view) { String uname = et_main_uanem.getText().toString(); String upwd = et_main_upwd.getText().toString(); String path = "http://192.168.43.149:8080/Mysqldenglu.xhtml"; new MyTask().execute(uname, upwd, path, "GET"); } public void loginPOST(View view) { String uname = et_main_uanem.getText().toString(); String upwd = et_main_upwd.getText().toString(); String path = "http://192.168.43.149:8080/Mysqldenglu.xhtml"; new MyTask().execute(uname, upwd, path, "POST"); } class MyTask extends AsyncTask { @Override protected Object doInBackground(Object[] params) { //获取参数的值 String uname = params[0].toString(); String upwd = params[1].toString(); String path = params[2].toString(); String type = params[3].toString(); String str="sname=" + uname + "&spwd=" + upwd; //判断提交方式是GET还是POST try { if ("GET".equals(type)) { path = path + "?"+str; Log.i("哈哈", path); url = new URL(path); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(type); } else if ("POST".equals(type)) { url = new URL(path); connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(type); //设置contentType contentLength connection.setRequestProperty("Content-Length",str.length()+""); connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); //设置允许对外输出数据 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 (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Object o) { super.onPostExecute(o); String s = (String) o; Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show(); } } } 3.清单文件添加权限 <!--添加联网的权限--> <uses-permission android:name="android.permission.INTERNET" />
相关文章推荐
- 32.Android端向web端(服务器)提交数据(GET-POST-AsyncHttpClient)
- Android 向服务器提交数据(GET-POST-AsyncHttpClient)
- android 向服务器提交数据(get-post-AsyncHttpClient)
- Android网络数据之向服务器提交数据的三种方式(get+post+AsyncHttpClient)
- Android-向服务器提交数据(GET-POST-AsyncHttpClient)
- android之向服务器提交数据(GET,POST,AsyncHttpClient)
- Android 向服务器提交数据(GET-POST-AsyncHttpClient)
- 向服务器提交数据(GET-POST-AsyncHttpClient)
- Android -- 提交数据到服务器,Get Post方式, 异步Http框架提交
- Android Get,Post,AsyncHttpClient向服务器提交数据几种方式
- Android -- 提交数据到服务器,Get Post方式, 异步Http框架提交
- android get或post及HttpClient与服务器数据交互
- Android - GET请求,POST请求,数据提交,编码,HttpClient,async-http开源框架,多线程下载,断点续传,xUtils框架
- Android-使用GET、POST、AsyncHttpClient向服务器提交数据
- android(21)(使用HttpURLConnection,HttpClient和AsyncHttpClient分别实现post和get请求数据)
- Android HttpClient框架get和post方式提交数据(非原创)
- 与服务器进行数据Android--->servlet(get、post、AsyncClient)三种方式
- Android Get,Post,AsyncHttpClient向服务器提交数据几种方式
- 我的Android进阶之旅------>Android发送GET和POST以及HttpClient发送POST请求给服务器响应
- Android之使用HTTP的get,post,HttpClient三种方式向服务器端提交文本数据