Android—(提交数据至服务器)
来源:互联网 发布:如何利用网络做直销 编辑:程序博客网 时间:2024/06/05 11:47
三种方式提交数据至服务器验证:
(登录案列)
布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.android32_submit.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名" android:id="@+id/et_aname" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" android:id="@+id/et_apass" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="GET提交" android:onClick="getSubmit" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="POST提交" android:onClick="postSubmit" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Async提交(第三方)" android:onClick="asyncSubmit" /></LinearLayout>
服务器端 (利用Tomcat发布)
package com.sun.servlet;import java.io.IOException;import java.io.Writer;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.biz.Dtb_login_biz;import com.sun.biz.Dtb_login_bizImp;import com.sun.biz.Dtb_users_biz;import com.sun.biz.Dtb_users_bizImp;import com.sun.entity.Dtb_login;import com.sun.entity.Dtb_users;public class LoginServlet extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String aname=req.getParameter("aname");String apass=req.getParameter("apass");Dtb_login dtb_login=new Dtb_login(aname, apass);String result=null;Dtb_login_biz login_biz=new Dtb_login_bizImp(); Writer out =resp.getWriter(); if(login_biz.Login(dtb_login)){ //判断后返回你想要返回的数据 result="true";}else{ result="falseOne";} out.write(result); out.flush(); }}
注意:如果是get提交的话,只需要将doPost 改成doGet 即可。
一、原生态get提交(不提倡:get方式对数据及的保护性不够高)
package com.example.android32_submit;import android.os.AsyncTask;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.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class MainActivity extends AppCompatActivity { private EditText et_aname; private EditText et_apass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 et_aname = (EditText) findViewById(R.id.et_aname); et_apass = (EditText) findViewById(R.id.et_apass); } //get方式提交数据去服务器验证 public void getSubmit(View view){ //获取输入框的用户名和密码 String aname=et_aname.getText().toString(); String apass=et_apass.getText().toString(); //服务器验证路径 String path="http://192.168.43.210:8080/T2/alogin.do"; new MyGetTask().execute(aname,apass,path); } class MyGetTask extends AsyncTask{ @Override protected Object doInBackground(Object[] objects) { //获取传过来的参数 String aname=objects[0].toString(); //用户名 String apass=objects[1].toString(); //密码 String path=objects[2].toString(); //请求路径 try { URL url=new URL(path); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); //设置请求方式 conn.setRequestMethod("GET"); //设置响应时间 conn.setConnectTimeout(5000); if(conn.getResponseCode()==200){//判断结果码 InputStream is=conn.getInputStream(); //打开输入流 BufferedReader br=new BufferedReader(new InputStreamReader(is)); String s=br.readLine(); return s; } } 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(MainActivity.this, ""+s, Toast.LENGTH_SHORT).show(); } }
二、原生态的post提交
//post方式提交数据去服务器验证 public void postSubmit(View view){ //获取输入框的用户名和密码 String aname=et_aname.getText().toString(); String apass=et_apass.getText().toString(); //服务器验证路径 String path="http://192.168.43.210:8080/T2/alogin.do"; new MyPostTask().execute(aname,apass,path); } class MyPostTask extends AsyncTask{ @Override protected Object doInBackground(Object[] objects) { //获取传过来的参数 String aname=objects[0].toString(); //用户名 String apass=objects[1].toString(); //密码 String path=objects[2].toString(); //请求路径 try { URL url=new URL(path); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); //设置请求方式 conn.setRequestMethod("POST"); //设置响应时间 conn.setConnectTimeout(5000); String str="aname="+aname+"&apass="+apass; //添加请求头 conn.setRequestProperty("Content-Length",str.length()+""); conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); //设置允许对外输出数据 conn.setDoOutput(true); OutputStream os=conn.getOutputStream(); os.write(str.getBytes()); if(conn.getResponseCode()==200){//判断结果码 InputStream is=conn.getInputStream(); //打开输入流 BufferedReader br=new BufferedReader(new InputStreamReader(is)); String s=br.readLine(); return s; } } 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(MainActivity.this,s, Toast.LENGTH_SHORT).show(); } }
三、第三方AsyncHttpClient 提交
下载地址:http://download.csdn.net/detail/a985548426/9913244
在Android端导入上面的架包,因为这个架包是依赖谷歌公式HttpClient的所以导入架包后还得在build.gradle中加入下图中画框的代码即可
//async第三方提交数据去服务器验证 public void asyncSubmit(View view){ //获取输入框的用户名和密码 String aname=et_aname.getText().toString(); String apass=et_apass.getText().toString(); //服务器验证路径 String path="http://192.168.43.210:8080/T2/alogin.do"; AsyncHttpClient ahc=new AsyncHttpClient(); RequestParams rp=new RequestParams(); rp.put("aname",aname); rp.put("apass",apass); ahc.post(this,path,rp,new TextHttpResponseHandler(){ @Override public void onFailure(int statusCode, Header[] headers, String responseBody, Throwable error) { super.onFailure(statusCode, headers, responseBody, error); } @Override public void onSuccess(int statusCode, Header[] headers, String responseBody) { super.onSuccess(statusCode, headers, responseBody); Toast.makeText(MainActivity.this, responseBody, Toast.LENGTH_SHORT).show(); } }); }}
阅读全文
0 0
- Android—(提交数据至服务器)
- Android 提交数据到服务器
- Android提交数据到服务器
- Android提交数据到服务器
- Android 提交数据到服务器
- Android向服务器提交数据
- Android向服务器提交数据
- Android--Post向服务器提交数据
- Android HTTPpost 提交数据到服务器
- Android 实现Post向服务器提交数据
- Android的提交数据到服务器
- Android客户端提交数据到服务器
- Android之向服务器提交数据
- Android (向服务器提交数据)
- 提交数据到服务器
- android重新学_网络3——采用HttpURLConnection提交数据到服务器
- android 通过get,post方式提交数据给服务器
- Android提交数据到服务器的几种方法
- LeetCode(25)--Reverse Nodes in k-Group
- Linux和Windonws下静态库与动态库(静态库篇)
- 求两个单链表list1与list2的差集,并将结果保存至list1中
- 服务器centos 7.2 LAMP环境安装
- js中常用方法总结
- Android—(提交数据至服务器)
- Spring Cloud Eureka详解
- Configuration--properties(三-1)
- Linux编译安装PHP5.6.31
- FastDFS+nginx+tomcat在linux系统的配置
- 整理:对开发者有用的英文网站合集
- 2017年7月27
- 深入理解Java虚拟机学习笔记-2.JVM垃圾回收
- Python 3 教程