下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
網(wǎng)絡(luò)編程:通信與Socket通信學(xué)問點概述:1.URLConnection接口:GetPost方式2.Client接口:GetPost方式3.Socket通信:面對連接(TCP)和無連接的(UDP)學(xué)問點詳述:前序:通信〔超文本傳輸協(xié)議〕用于傳送www方式的數(shù)據(jù),承受了懇求/了懇求的方法、URI、協(xié)議版本,以及包含懇求修飾符、客戶信息和內(nèi)容的類似于MIME的消息構(gòu)造。效勞器以一個狀態(tài)行作為響應(yīng),響應(yīng)的內(nèi)容包括消息協(xié)議的版本、成功或者錯誤編碼,還包含效勞器信息、實體元信息以及可能的實體內(nèi)容。它是一個屬于應(yīng)用層的面對對象的協(xié)議,由于其簡潔internet上,通信通常發(fā)生在TCP/IP連接之上,缺省端口是TCP80協(xié)議在internet或其它網(wǎng)絡(luò)的其他協(xié)議之上才能完成,只預(yù)示著一個牢靠地傳輸。Android供給了URLConnection和Client接口程序。URLConnection接口.*供給GetPost,Get懇求可以獵取靜態(tài)頁面,也可以把參數(shù)放在URL字符串后面,傳遞給效勞器Post與Get的不同之處在于Post的參數(shù)不是放在URL 字符串里面,而是放在 請求數(shù)據(jù)中。URLConnection是Java的標準類,繼承自URLConnection類,兩個類都是抽象類,無法直接實例化對象。其對象主要通過URL的openConnection方法獲得每次openConnection都將創(chuàng)立一個的實例,在連接之前我們可以對其一些屬性進展設(shè)置,比方超時時間等:connection.setDoOutput(true);//設(shè)置輸入流〔Post時必需設(shè)置〕connection.setDoInput(true)//〔Post時必需設(shè)置〕connection.setRequestMethod(“POST“);//設(shè)置方式為POST〔Post時必需設(shè)置〕connection.setInstanceFollowRedirects(true);//設(shè)置該懇求是否重定向connection.disconnect;//關(guān)閉URLConnection連接注:假設(shè)使用post方式,還需要設(shè)置懇求的Content-Typeconnection.setRequestProperty(“Content-Type“,“application/x-www-form-urlencoded“);Client接口(Apache接口,包名:org.apache..*),需要了解一些類:(1)ClientGetGet來構(gòu)Get懇求,然后通過Client來執(zhí)行這個懇求,Response在接收這個懇求后給出響應(yīng),最終通是否成功,并處理??梢灾苯邮褂萌缦路椒▽㈨憫?yīng)的實體元信息轉(zhuǎn)化為字符串ClientGet方式懇求步驟:Get懇求newGet〔urlStr〕獵取t實例w〔;發(fā)送懇求,接收響應(yīng)Response=Client.excute(Get)推斷響應(yīng)碼是不是200.假設(shè)是200,接收響應(yīng)數(shù)據(jù)Entity =Response.getEntity;Client使用Post方式獵取數(shù)據(jù)略微簡單一點。首先好使PostPost懇求,PostRequest=newPost(“url“);需要使用NameValuePair來保存要傳遞的參數(shù),可以使用BasicNameValuePair來構(gòu)造一個要被傳遞的參數(shù),然后通過addNameValuePair中,List<NameValuePair>params=newArrayList<NameValuePair>;//NameValuePairPost參數(shù)params.add(newBasicNameValuePair(“par“,“Client_android_Post“));//Post方式還需要設(shè)置所使用的字符集,最終就和Get方式一樣通過Client來懇求這個連接,返回響應(yīng)并處理,Entityentity=newUrlEncodedFormEntity(params,“utf-8“); Request.setEntity(entity); //為懇求設(shè)置實體元信息〔2〕DefaultClient客戶端,我們可連接。(3)Response連接后,就會返回一個Response,可以通過其獲得一些響連接并獲得該懇求是否成功的代碼:if(hresponse.getStatusLine.getStatusCode==Status.SC_OK)//連接成功}3Socket通信SocketIP地址和端口,它是支持TCP/IP〔TCP協(xié)議〔UDP協(xié)議的。面對連接的操作比無連接操作的效率更低,但是數(shù)據(jù)的安全性更高。AndroidSocket編程效勞器實現(xiàn)步驟:指定端口實例化一個ServerSocket調(diào)用ServerSocket的accept〔〕以在等待連接期間造成堵塞獵取位于該底層Socket的流以進展讀寫操作將數(shù)據(jù)封裝成流Socket進展讀寫關(guān)閉翻開的流客戶端實現(xiàn)步驟:通過IP地址和端口實例化Socket,懇求連接效勞器Socket上的流以進展讀寫把流包裝進BufferedReader/PrintWriter的實例Socket進展讀寫關(guān)閉翻開的流擴展網(wǎng)絡(luò)通信的中文亂碼問題網(wǎng)絡(luò)通信中,產(chǎn)生亂碼的緣由主要是通信過程中使用了不同傳輸?shù)竭_中斷設(shè)備的編碼方式。因此在傳輸過程中就需要至少兩次編碼轉(zhuǎn)換:首先從效勞器編碼轉(zhuǎn)換為網(wǎng)絡(luò)編碼,再從網(wǎng)絡(luò)編碼轉(zhuǎn)換為終端設(shè)備編碼。在轉(zhuǎn)換過程中發(fā)生任何狀況都可能引起編碼混亂,一般狀況下我們可以通過以下兩種方式來避開這個問題。Unicode字符集,所以在連接網(wǎng)頁時,我們期望網(wǎng)頁數(shù)據(jù)在網(wǎng)絡(luò)傳輸時utf-8utf-8轉(zhuǎn)換成Unicod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年外研銜接版七年級科學(xué)上冊階段測試試卷含答案
- 2025年粵教版七年級科學(xué)下冊月考試卷含答案
- 2024水電站水資源綜合利用承包合同樣本3篇
- 2024年聯(lián)合研發(fā)項目保密合同
- 2025年人教版九年級化學(xué)下冊階段測試試卷
- 2024版基礎(chǔ)設(shè)施建設(shè)合同模板下載3篇
- 多媒體設(shè)備安裝施工方案
- 2024年甘肅鋼鐵職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 二零二五年度老年人權(quán)益保障贍養(yǎng)合同3篇
- 2025年北師大版九年級生物上冊月考試卷
- (完整)中國象棋教案
- 2023年八年級物理實驗報告單
- DL-T 5190.1-2022 電力建設(shè)施工技術(shù)規(guī)范 第1部分:土建結(jié)構(gòu)工程(附條文說明)
- 《了凡四訓(xùn)》課件
- 不孕癥診斷、治療新進展課件
- 胖東來商貿(mào)集團各項管理制度
- 麥琴每日讀經(jīng)計劃表
- 連續(xù)梁施工安全培訓(xùn):掛籃施工及安全控制
- 土壤與肥料學(xué)課件
- 供應(yīng)商物料質(zhì)量問題賠償協(xié)議(中文)
- 公共廁所(預(yù)算書)
評論
0/150
提交評論