Android之智慧北京二
Http
Requst (請求)
GET /zhbj/categories.json HTTP/1.1 Host: localhost:8080 Connection: keep-alive Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Accept-Encoding: gzip, deflate, sdch Accept-Language: zh-CN,zh;q=0.8,en;q=0.6 RA-Ver: 2.8.8 RA-Sid: 74195216-20150210-033823-d1a3bf-9cedaa If-None-Match: W/"1171-1412422055000" If-Modified-Since: Sat, 04 Oct 2014 11:27:35 GMT name=xxx&pwd=xxx {json:}
- 請求消息行 : 請求方式,請求的url,http版本
- 請求消息頭 : key-value
- 請求實體內容:
response (響應)
HTTP/1.1 304 Not Modified Server: Apache-Coyote/1.1 ETag: W/"1171-1412422055000" Date: Mon, 09 Mar 2015 01:49:42 GMT {"retcode":200,"data":[{"id":10000,"title":"新聞","type":1,"children":[{"id":10007,"title":"北京","type":1,"url":"/10007/list_1.json"},{"id":10006,"title":"中國","type":1,"url":"/10006/list_1.json"},{"id":10008,"title":"國際","type":1,"url":"/10008/list_1.json"},{"id":10010,"title":"體育","type":1,"url":"/10010/list_1.json"},{"id":10091,"title":"生活","type":1,"url":"/10091/list_1.json"},{"id":10012,"title":"旅遊","type":1,"url":"/10012/list_1.json"},{"id":10095,"title":"科技","type":1,"url":"/10095/list_1.json"},{"id":10009,"title":"軍事","type":1,"url":"/10009/list_1.json"},{"id":10093,"title":"時尚","type":1,"url":"/10093/list_1.json"},{"id":10011,"title":"財經","type":1,"url":"/10011/list_1.json"},{"id":10094,"title":"育兒","type":1,"url":"/10094/list_1.json"},{"id":10105,"title":"汽車","type":1,"url":"/10105/list_1.json"}]},{"id":10002,"title":"專題","type":10,"url":"/10006/list_1.json","url1":"/10007/list1_1.json"},{"id":10003,"title":"組圖","type":2,"url":"/10008/list_1.json"},{"id":10004,"title":"互動","type":3,"excurl":"","dayurl":"","weekurl":""}],"extend":[10007,10006,10008,10014,10012,10091,10009,10010,10095]}
- 響應消息行: http版本, 響應狀態碼,響應的描述
- 響應的消息頭: key-value
- 響應的內容 :
Gson的使用\先把gson-2.2.1.jar拷貝到lib下
json:
- key-value
- key 永遠是String
- value: 集合,數字,String, boolean
Gson:(google)
- Gson 類的使用:
- toJson: 將java對象變成 json的string
- fromJson: 將json串轉化爲java對象
1、解析json串數據變成一個javabean對象存儲數據,jsonString爲服務器返回的字符串
// 1、解析json串 Gson gson = new Gson(); NewsListBean bean = gson.fromJson(jsonString, NewsListBean.class);
- Gson 類的使用:
訪問服務器ip的設置
在虛擬機中設置:
//服務器地址
//服務器地址,本機ip、虛擬ip
String SERVICE_URL="http://10.207.116.24:8888/zhbj";
String NEWS_CENTER_URL=SERVICE_URL+"/categories.json";
10.207.116.24:是聯網的本機ip,8888是設置的端口號,categories.json是文件名
開源框架 xUtils的使用(部分)
網絡請求訪問模塊
1、
//通過網絡獲取數據,加載進來
HttpUtils utils=new HttpUtils();
utils.send(HttpMethod.GET, Constans.NEWS_CENTER_URL, new RequestCallBack<String>(){
//訪問網絡成功
@Override
public void onSuccess(ResponseInfo<String> responseInfo)
{
//取出結果值
String result=responseInfo.result;
Log.i(TAG, "訪問成功"+result);
}
//訪問網絡失敗
@Override
public void onFailure(HttpException error, String msg)
{
//打印棧錯誤信息,使用第三方開源庫需要打印,不然看不到錯誤信息
error.printStackTrace();
Log.i(TAG, "訪問失敗"+msg);
}});
2、
//通過網絡獲取數據,加載進來
HttpUtils utils=new HttpUtils();
RequestParams params=new RequestParams();
//消息頭
params.addHeader("", "");
//1、請求參數
//post
NameValuePair pair=new BasicNameValuePair("", "");
params.addBodyParameter(pair);
//get
NameValuePair pair=new BasicNameValuePair("", "");
params.addQueryStringParameter(pair);
utils.send(HttpMethod.GET, Constans.NEWS_CENTER_URL, params, new RequestCallBack<String>(){
//訪問網絡成功
@Override
public void onSuccess(ResponseInfo<String> responseInfo)
{
//取出結果值
String result=responseInfo.result;
Log.i(TAG, "訪問成功"+result);
processJson( result);
}
//訪問網絡失敗
@Override
public void onFailure(HttpException error, String msg)
{
//打印棧錯誤信息
error.printStackTrace();
Log.i(TAG, "訪問失敗"+msg);
}});
2、注入模塊的使用
1、對id注入的寫法
@ViewInject(R.id.news_tab_indicator)
private TabPageIndicator tabPagerIndicator;
@ViewInject(R.id.news_center_pager)
private ViewPager mViewPager;
//在這裏可以直接使用了,不用再寫findViewById()了
View view=View.inflate(mContext, R.layout.news_center_tab, null);
//使用ViewUtils注入
ViewUtils.inject(mContext, view);
return view;
2、對控件點擊事件使用注入的寫法
@OnClick(R.id.news_arrow)
public void onClick(View view){
//點擊箭頭到下一個
int item=mViewPager.getCurrentItem();
mViewPager.setCurrentItem(++item);
}
加載圖片模塊: BitmapUtils
加載圖片的功能也比較簡單,首先在初始化中創建一個BitmapUtils出來
BitmapUtils mBitmapUtils = new BitmapUtils(context);
在需要加載圖片的地方調用display(View ,url)這個方法就可以了。View是承載圖片的控件例如:ImageView
這只是Bitmap的一個加載圖片數據的簡單方法,裏面還封裝了很多方法,想了解更多的就去看看xUtils中BitmapUtils模塊的源碼吧。
開源框架 ViewPagerIndicator的使用
1、開源框架中有六種樣式,想了解更多的的去看看開源庫吧!
主要介紹的是tab與viewpager的搭配時用。