android與本地tomcat的通信,實(shí)現(xiàn)登錄功能

最近需要實(shí)現(xiàn)android與部署在本地tomcat上的java web項(xiàng)目之間進(jìn)行通信的功能,在這里總結(jié)一下。

首先,由于是與本地服務(wù)器通信,所以我是采用android模擬器實(shí)現(xiàn)的。常用的模擬器有夜神,海馬玩等(官方模擬器用著比較卡) 但是夜神無(wú)法訪問(wèn)到本地tomcat,所以我

使用的海馬玩,本地服務(wù)器的地址是10.0.2.2。

夜神連接androidstudio:cmd進(jìn)入到Nox\bin下,nox_adb.exe? connect 127.0.0.1:62001

海馬玩連接androidstudio:cmd進(jìn)入Droid4X? 下,adb connect 127.0.0.1:26944。 當(dāng)然端口號(hào)隨意。

java web服務(wù)端我使用的是springmvc+mybatis+spring。

思路:

android端的話,我使用的是HttpUrlConnection與服務(wù)端進(jìn)行通信,傳遞的是json信息。主要代碼如下:


publicvoidpostRequest()?{

try{

jsonHandle=newJsonHandle();

jsonObject.put("username",username);

jsonObject.put("password",password);

data=jsonObject.toString().getBytes();//這是要發(fā)送給服務(wù)端的json信息,里面有用戶名以及密碼。

URL?url=newURL(ip);//ip是后端具體的處理登錄的url,例如http://10.0.2.2:8080/xxx/mvc/login,記得加上http。

HttpURLConnection?httpURLConnection?=?(HttpURLConnection)?url.openConnection();

httpURLConnection.setConnectTimeout(3000);

httpURLConnection.setDoInput(true);

httpURLConnection.setDoOutput(true);

httpURLConnection.setRequestMethod("POST");

httpURLConnection.connect();

OutputStream?outputStream?=?httpURLConnection.getOutputStream();

outputStream.write(data);

outputStream.flush();//發(fā)送data

//讀取服務(wù)端的返回信息。

InputStream?is=httpURLConnection.getInputStream();

BufferedReader?reader?=newBufferedReader(newInputStreamReader(is));

StringBuilder?sb?=newStringBuilder();

String?line?=null;

try{

while((line?=?reader.readLine())?!=null)?{

sb.append(line?+"/n");

}

}catch(Exception?e)?{

e.printStackTrace();

}finally{

try{

is.close();

}catch(Exception?e)

{e.printStackTrace();

}

}

}catch(Exception?e){

e.printStackTrace();

}

}


服務(wù)端,使用springmvc處理請(qǐng)求。代碼如下:

@Controller

@RequestMapping(value?="/mvc")

publicclassLoginController?{

@RequestMapping(value?="/login",method=RequestMethod.POST)

publicvoidlogin(HttpServletRequest?req,HttpServletResponse?rep)throwsIOException{

BufferedReader?br?=null;

try{

br?=?req.getReader();//接收信息

}catch(IOException?e1)?{

//?TODO?Auto-generated?catch?block

e1.printStackTrace();

}

String?line?=null;

String?data?="";

while((line?=?br.readLine())?!=null)?{

data?+=?line;

}

try{

rep.getOutputStream().write("信息".getBytes());//發(fā)送信息。

}catch(IOException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}


一般傳遞方式都是post.這樣子,就達(dá)到了通信的目的,再加上一些邏輯代碼,就能做到登錄檢測(cè)等功能啦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,696評(píng)論 18 399
  • 先看一下效果圖: (一)頭像裁切、上傳服務(wù)器(效果圖) 一般都是有圓形顯示頭像的,這里我自定義了一個(gè)ImageVi...
    kingZXY2009閱讀 5,560評(píng)論 5 15
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,011評(píng)論 0 11
  • 電視盒子中比較常見的一個(gè)難點(diǎn)總結(jié)如下: 1:判斷是自啟動(dòng)還是與服務(wù)端測(cè)試 2:沒有網(wǎng)絡(luò)情況下,怎么在啟動(dòng)后通過(guò)ad...
    茴香豆的第五種寫法閱讀 1,615評(píng)論 1 2
  • 百日練一百天讀一百本書第三十九天,今天讀的書名叫《寫作業(yè)不用靠媽媽》,講的是:宙思一遇到要?jiǎng)幽X筋的作業(yè)就...
    夢(mèng)境里的冰雪閱讀 227評(píng)論 0 1

友情鏈接更多精彩內(nèi)容