Android筆記 (2): 創(chuàng)建應(yīng)用、Volley、Postman

本來(lái)想先寫(xiě)反編譯系列,但是拿別人的應(yīng)用(如360優(yōu)化大師等)來(lái)作為案列,感覺(jué)并不適合,因此在反編譯系列之前,先做一個(gè)簡(jiǎn)單的應(yīng)用,其中包括:FastJson,Volley等庫(kù),同時(shí)實(shí)現(xiàn)Volley庫(kù)的封裝。

該項(xiàng)目的目的是作為反編譯系列的素材。

創(chuàng)建項(xiàng)目

輸入包名等信息
下一步選API 14

到下一步選擇新建一個(gè)Empty Activity,然后Next,出現(xiàn)如下界面,直接Finish。(這一步不重要,也可以在項(xiàng)目建好后自己生成。)

自動(dòng)創(chuàng)建MainActivity

在Android Stuido中,我比較喜歡Project視圖,更接近文件系統(tǒng)目錄結(jié)構(gòu)。

選擇"Project"

Android Studio項(xiàng)目目錄結(jié)構(gòu)介紹 - OPEN 開(kāi)發(fā)經(jīng)驗(yàn)庫(kù)

引入Volley

既然該項(xiàng)目中用到Volley,那學(xué)習(xí)地址必不可少了。
網(wǎng)絡(luò)請(qǐng)求庫(kù)Volley詳解 - 泡在網(wǎng)上的日子

這里引用最新的Volley,將下面一行代碼加入到VolleyDemo/app/build.gradle中的dependencies里。

compile 'com.mcxiaoke.volley:library:1.0.19'

Volley 簡(jiǎn)單使用

既然是有網(wǎng)絡(luò)請(qǐng)求,那么別忘了給AndroidManifest.xml加上網(wǎng)絡(luò)權(quán)限。

<uses-permission android:name="android.permission.INTERNET" />

在MainActivity中添加如下方法:

private void initData() {
    String url = "http://www.baidu.com/";
    StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
        @Override
        public void onResponse(String s) {
            Log.d("demo", "response = " + s);
        } 
   }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            Log.e("demo", "onErrorResponse: " + volleyError.getMessage());
        }
    }); 
   Volley.newRequestQueue(this).add(request);
}

onCreate方法中調(diào)用即可。

@Overrideprotected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initData();
}

編譯運(yùn)行發(fā)現(xiàn)流程已經(jīng)跑通。代碼比較簡(jiǎn)單,不過(guò)多解釋。


log截圖

數(shù)據(jù)來(lái)源

通過(guò)上面的驗(yàn)證,數(shù)據(jù)流已經(jīng)OK,現(xiàn)在要開(kāi)始拿真正的數(shù)據(jù)來(lái)做事情了。
因?yàn)轫?xiàng)目比較簡(jiǎn)單,單獨(dú)做個(gè)服務(wù)端比較浪費(fèi)資源。因此這里我用Android應(yīng)用架構(gòu)之Retrofit使用文章中提到的 http://ip.taobao.com/service/getIpInfo.php?ip=21.22.11.33 來(lái)作為實(shí)例使用。
發(fā)出一個(gè)簡(jiǎn)單的http GET請(qǐng)求,即可獲得服務(wù)器返回的數(shù)據(jù),在瀏覽器上訪問(wèn)同理。但是,如果碰到需要Post請(qǐng)求的接口怎么辦?如果通過(guò)寫(xiě)代碼調(diào)用API,是可以做到,但是個(gè)人感覺(jué)太麻煩了。因此這里提一下api測(cè)試中的一種便利工具:PostMan。

PostMan

如何在Chrome下使用Postman進(jìn)行rest請(qǐng)求測(cè)試

分別在瀏覽器和瀏覽器和Postman上請(qǐng)求上面的接口

瀏覽器上得到的結(jié)果
Postman得到的結(jié)果

通過(guò)該圖可以發(fā)現(xiàn)Postman的功能還是很強(qiáng)大的,無(wú)論是請(qǐng)求類(lèi)型,設(shè)置Header,Params都非常方便。推薦大家使用該工具來(lái)做接口測(cè)試。

現(xiàn)在將代碼中的url設(shè)置為

http://ip.taobao.com/service/getIpInfo.php?ip=21.22.11.33。

編譯運(yùn)行,打出log:

04-02 17:08:33.403 13181-13181/? D/demo: response = {"code":0,"data":{"country":"\u7f8e\u56fd","country_id":"US","area":"","area_id":"","region":"","region_id":"","city":"","city_id":"","county":"","county_id":"","isp":"","isp_id":"","ip":"21.22.11.33"}}

至此,通過(guò)volley調(diào)用上面的接口已經(jīng)完成。

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評(píng)論 25 709
  • 太長(zhǎng)了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候,無(wú)意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開(kāi)源...
    龐哈哈哈12138閱讀 20,394評(píng)論 3 283
  • 傍晚過(guò)菜市場(chǎng),分不清夕陽(yáng)和路燈顏色。同青菜腐爛的氣味,和時(shí)髦女子的體香混雜的空氣一樣。 骯臟不可用來(lái)形容乞討者,混...
    Lpengpengpeng閱讀 349評(píng)論 0 7
  • 檢討,作為組長(zhǎng),沒(méi)有一直督促小組成員,打卡完成自己的小計(jì)劃。 工作:下午進(jìn)行了雜草清除,看著干草的種子在我們的干預(yù)...
    灸灸微笑閱讀 84評(píng)論 0 1
  • 每個(gè)人身上都有值得學(xué)習(xí)、欣賞的地方,今天的作業(yè)是審視我們身邊最常用的人/事/物,我就找三個(gè)維度自己最熟悉的...
    靜靜是我啦閱讀 344評(píng)論 0 0

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