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...