Web后台和Android前端之间的网络通信
16lz
2021-01-23
一、通过GET方式去提交数据:
public void loginGet(View view){//例如: String uname=et_main_uname.getText().toString(); String upass=et_main_upass.getText().toString(); String path="http://193.168.2.141:7788/demo/login.do"; new MyGetTask().execute(uname,upass,path); }
class MyGetTask extends AsyncTask{ @Override protected Object doInBackground(Object[] params) { String uname=params[0].toString(); String upass=params[1].toString(); String path=params[2].toString(); try { URL url=new URL(path+"?uname="+uname+"&upass="+upass); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); if(connection.getResponseCode()==200){ InputStream is=connection.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提交数据
public void loginPost(View view){ String uname=et_main_uname.getText().toString(); String upass=et_main_upass.getText().toString(); String path="http://193.168.2.141:7788/demo/login.do"; new MyPostTask().execute(uname,upass,path); }
class MyPostTask extends AsyncTask{ @Override protected Object doInBackground(Object[] params) { String uname=params[0].toString(); String upass=params[1].toString(); String path=params[2].toString(); try { URL url=new URL(path); HttpURLConnection conn= (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5000); //admin 123 //uname=admin&upass=123456 String s="uname="+uname+"&upass="+upass; //添加请求头 conn.setRequestProperty("Content-Length",s.length()+""); conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");//固定的写法 conn.setDoOutput(true);//允许对外输出数据 OutputStream os=conn.getOutputStream(); os.write(s.getBytes()); if(conn.getResponseCode()==200){ InputStream is=conn.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String str=br.readLine(); return str; } } 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提交数据
public void loginAsyncHttpClient(View view){ String uname=et_main_uname.getText().toString(); String upass=et_main_upass.getText().toString(); String path="http://193.168.2.141:7788/G160628_Server/login.do"; AsyncHttpClient ahc=new AsyncHttpClient(); RequestParams params=new RequestParams(); params.put("uname",uname); params.put("upass",upass); ahc.post(this,path,params,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(); } }); }
更多相关文章
- Android 读取网络数据
- Android中数据库升级
- android直接读取数据库文件
- android listview无限循环显示数据
- android 加密数据库
- android 数据库
- Android SQLite数据库实例
- 如何在android中使用你自己的数据文件
- android之SQlite创建数据库操作