安卓Http請求(三)

2021-08-17 06:42:46 字數 3266 閱讀 8813

1.以天氣預報為例項

這次http請求是與json聯合使用,這裡先介紹一下json,json是乙個輕量級資料交換格式。

下面將系統的講一下json

2.json

json資料又三種,單條、陣列、巢狀這三種。其中比較重要的是json資料解析。

其中要利用工具解析json資料比較好用但是json.com

使用json效果如下

單條json資料解析

//json資料

private

string jsonstr =

""; //單條json解析

jsonobject jsonobject=

new jsonobject(jsonstr);

string name=jsonobject.getstring("name");

int age=jsonobject.getint("age");

log.e("main",name+age);//列印日誌

巢狀json資料解析

//json資料

private string jsonstr2 = "}";

//巢狀的單條json解析

jsonobject jsonobject = new jsonobject(jsonstr2);

string name = jsonobject.getstring("name");

int age = jsonobject.getint("age");

jsonobject info = jsonobject.getjsonobject("info");

string classname = info.getstring("class");

int id = info.getint("id");

log.e("json", name + age + classname + id);

3.天氣預報例項

首先設計ui介面

<?xml version="1.0" encoding="utf-8"?>

xmlns:android=""

xmlns:tools=""

android:layout_width="match_parent"

android:orientation="vertical"

android:layout_height="match_parent"

tools:context="com.example.ll.skt.weatheractivity">

android:id="@+id/edic"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="請輸入城市名"/>

android:text="查詢"

android:id="@+id/btnic"

android:layout_width="match_parent"

android:layout_height="50dp" />

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:textsize="20dp"

android:id="@+id/tianqi"

android:text="天氣:"

android:layout_width="match_parent"

android:layout_height="50dp" />

android:textsize="20dp"

android:id="@+id/wendu"

android:text="溫度:"

android:layout_width="match_parent"

android:layout_height="50dp" />

android:textsize="20dp"

android:id="@+id/fengli"

android:text="風向:"

android:layout_width="match_parent"

android:layout_height="50dp" />

linearlayout>

linearlayout>

然後繫結id

private void bindid()
接著獲取json資料

private string weatherapi = "";
建立內部類繼承asynctask方法

protected string doinbackground(string... strings)  else 

inputstreamreader inputstreamreader = new inputstreamreader(inputstream);

bufferedreader bufferedreader = new bufferedreader(inputstreamreader);

string temp = "";

while ((temp = bufferedreader.readline()) != null)

bufferedreader.close();

inputstreamreader.close();

inputstream.close();

} catch (malformedurlexception e) catch (ioexception e)

return stringbuffer.tostring();

}

解析json資料

protected void onpostexecute(string s)  else  catch (jsonexception e) }}

完成效果如下

安卓網路請求框架對比

谷歌官網從安卓6.0系統開始預設不再支援httpclient,基於httpclient的框架建議不再使用 httpclient 建議廢棄 httpurlconnection 建議用框架 android async http框架 基於 httpclient,建議廢棄 volley框架 整合androi...

安卓許可權理解 三

其實簽名檔案就可以看作是乙個容器,用來裝一些摘要資訊的容器而已.android簽名的主要作用是為了 所以一旦給apk簽名並上線後,簽名檔案和密碼別名等一定要記住不能丟失,這樣會損失使用者且帶來災難性的後果.簽名檔案有很多種,這裡主要是介紹android相關的,比如最早的keystore,jks,pe...

基礎 fiddler抓取安卓https請求

一 fiddler 簡介 fiddler 是一款免費 靈活 操作簡單 功能強大的 http 工具,是目前最常用的抓包工具之一。具備的功能 抓取所有的 http https 包 過濾會話 分析請求詳細內容 偽造客戶端請求 篡改伺服器響應 重定向 網路限速 斷點除錯等。二 fiddler 工作原理 fi...