1、java服務(wù)器建立至少一種服務(wù)webservices、servlet、socket

創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注做網(wǎng)站、網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣,國(guó)際域名空間,網(wǎng)站空間,成都網(wǎng)站托管有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)。
2、客戶端通過(guò)socket或者h(yuǎn)ttpurlconnection的方式進(jìn)行連接訪問(wèn)
服務(wù)端:
@Override
protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
//?TODO?Auto-generated?method?stub
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
PrintWriter?out?=?resp.getWriter();
//用HTML格式給瀏覽器返回?cái)?shù)據(jù)
out.println("html");
out.println("head");
out.println("titleTomcat?Servlet測(cè)試/title");
out.println("/head");
out.println("body");
out.println("Hello,First?Servlet!");
out.println("/body");
out.println("/html");
out.println("Hello,第一個(gè)Tomcat!!!");
out.close();
}
客戶端:
private?String?doGet(String?url){??
String?responseStr?=?"";??
try?{??
String?name?=?nameEdit.getText().toString().trim();??
String?code?=?codeEdit.getText().toString().trim();??
String?getUrl?=?URL?+?"?NAME="?+?name+""+"CODE="?+?code;?????????
HttpGet?httpRequest?=?new?HttpGet(getUrl);??
HttpParams?params?=?new?BasicHttpParams();??
ConnManagerParams.setTimeout(params,?1000);??
HttpConnectionParams.setConnectionTimeout(params,?3000);??
HttpConnectionParams.setSoTimeout(params,?5000);??
httpRequest.setParams(params);??
HttpResponse?httpResponse?=?new?DefaultHttpClient().execute(httpRequest);??
final?int?ret?=?httpResponse.getStatusLine().getStatusCode();??
if(ret?==?HttpStatus.SC_OK){??
responseStr?=?EntityUtils.toString(httpResponse.getEntity(),?HTTP.UTF_8);??
}else{??
responseStr?=?"-1";??
}??
}?catch?(ClientProtocolException?e)?{??
//?TODO?Auto-generated?catch?block??
e.printStackTrace();??
}?catch?(IOException?e)?{??
//?TODO?Auto-generated?catch?block??
e.printStackTrace();??
}??
return?responseStr;??
}??
詳細(xì)的參見(jiàn):
當(dāng)手機(jī)需要獲取一組數(shù)據(jù),用http協(xié)議向服務(wù)器發(fā)起請(qǐng)求,服務(wù)器根據(jù)http協(xié)議傳過(guò)來(lái)的請(qǐng)求地址和參數(shù)返回?cái)?shù)據(jù)給手機(jī)。 獲取的數(shù)據(jù)如果非常大,可以在手機(jī)端建個(gè)SQLite數(shù)據(jù)庫(kù),把數(shù)據(jù)保存進(jìn)去。
android客戶端和服務(wù)器端是基于IntentService的,具體如下:
后臺(tái)使用簡(jiǎn)單的servlet,支持GET或POST。這個(gè)servlet最終返回給前臺(tái)一個(gè)字符串flag,值是true或false,表示登錄是否成功。
然后在安卓的ADT上創(chuàng)建一個(gè)安卓項(xiàng)目,建立兩個(gè)Activity,分別作為登錄界面和登錄成功界面。
HTTP的訪問(wèn)公共類,用于處理GET和POST請(qǐng)求。
IntentService服務(wù),用于在后臺(tái)以隊(duì)列方式處理耗時(shí)操作。
在AndroidManifest.xml中注冊(cè)IntentService。注意uses-permission節(jié)點(diǎn),為程序開(kāi)啟訪問(wèn)網(wǎng)絡(luò)的權(quán)限。
登陸界面處理,注意按鈕監(jiān)聽(tīng)事件中,使用Intent將要傳遞的值傳給service。接收廣播類中,同樣使用Intent將要傳遞的值傳給下一個(gè)Activity。在onCreate()中,動(dòng)態(tài)注冊(cè)接收廣播類的實(shí)例receiver。在接收廣播類中,不要使用完畢后忘記注銷接收器,否則會(huì)報(bào)一個(gè)Are you missing a call to unregisterReceiver()? 的異常。
首先不要管安卓端還是蘋(píng)果端,現(xiàn)在一般都是響應(yīng)式的app,你放到安卓或者蘋(píng)果或者pc或者平板都是沒(méi)有問(wèn)題的。一般采用的是http接口通訊,或者socket連接。具體你要去查資料找Demo了。而且現(xiàn)在主流是采用html5開(kāi)發(fā)或者混合開(kāi)發(fā)了。所以最好是服務(wù)器提供appAPI接口,通過(guò)http訪問(wèn)服務(wù)器,獲取數(shù)據(jù),數(shù)據(jù)一般是json,或者xml,拿到后解析數(shù)據(jù)就可以了,然后再用UI框架或者其他框架或者自定義的UI封裝下格式很漂亮了,至于cookie和session等,看你的習(xí)慣,網(wǎng)絡(luò)驗(yàn)證和簽名那些也自己看習(xí)慣,如果涉及到大數(shù)據(jù),還需要引入第三方框架的,直接引入就可以了,不過(guò)推薦自己寫(xiě),防止侵權(quán)。都是很通用的。
可以在服務(wù)器端(springboot和數(shù)據(jù)庫(kù)等)搭建好之后分別部署到服務(wù)器上(例如阿里云的云主機(jī)、物理主機(jī)等等),
把原先android程序中本地的ip地址改為部署到的服務(wù)器ip地址即可實(shí)現(xiàn)打包后的apk在真機(jī)上也能與服務(wù)器進(jìn)行數(shù)據(jù)交互了。
要根據(jù)實(shí)際應(yīng)用的需求和數(shù)據(jù)量。
HTTP 定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。
事實(shí)上 GET 適用于多數(shù)請(qǐng)求,而保留 POST 僅用于更新站點(diǎn)。根據(jù) HTTP 規(guī)范,GET 用于信息獲取,而且應(yīng)該是 安全的和 冪等的。所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說(shuō),GET 請(qǐng)求一般不應(yīng)產(chǎn)生副作用。冪等的意味著對(duì)同一 URL 的多個(gè)請(qǐng)求應(yīng)該返回同樣的結(jié)果。完整的定義并不像看起來(lái)那樣嚴(yán)格。從根本上講,其目標(biāo)是當(dāng)用戶打開(kāi)一個(gè)鏈接時(shí),它可以確信從自身的角度來(lái)看沒(méi)有改變資源。比如,新聞?wù)军c(diǎn)的頭版不斷更新。雖然第二次請(qǐng)求會(huì)返回不同的一批新聞,該操作仍然被認(rèn)為是安全的和冪等的,因?yàn)樗偸欠祷禺?dāng)前的新聞。反之亦然。
POST 請(qǐng)求就不那么輕松了。POST 表示可能改變服務(wù)器上的資源的請(qǐng)求。仍然以新聞?wù)军c(diǎn)為例,讀者對(duì)文章的注解應(yīng)該通過(guò) POST 請(qǐng)求實(shí)現(xiàn),因?yàn)樵谧⒔馓峤恢笳军c(diǎn)已經(jīng)不同了(比方說(shuō)文章下面出現(xiàn)一條注解);
在FORM提交的時(shí)候,如果不指定Method,則默認(rèn)為GET請(qǐng)求,F(xiàn)orm中提交的數(shù)據(jù)將會(huì)附加在url之后,以?分開(kāi)與url分開(kāi)。字母數(shù)字字符原樣發(fā)送,但空格轉(zhuǎn)換為“+“號(hào),其它符號(hào)轉(zhuǎn)換為%XX,其中XX為該符號(hào)以16進(jìn)制表示的ASCII(或ISO Latin-1)值。GET請(qǐng)求請(qǐng)?zhí)峤坏臄?shù)據(jù)放置在HTTP請(qǐng)求協(xié)議頭中,而POST提交的數(shù)據(jù)則放在實(shí)體數(shù)據(jù)中;
GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒(méi)有此限制。
當(dāng)前標(biāo)題:android服務(wù)交互,android 服務(wù)開(kāi)發(fā)
標(biāo)題來(lái)源:http://chinadenli.net/article29/dseeojh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、小程序開(kāi)發(fā)、外貿(mào)建站、營(yíng)銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)