簡介
鴻蒙上使用的Http網絡框架,里面包含純Java實現的HttpNet,類似okhttp使用,支持同步和異步兩種請求方式;還有鴻蒙版retrofit,和Android版Retrofit相似的使用,解放雙手般優雅使用注解、自動解析json
很遺憾,目前沒能直接發布bintray,DevEco Studio上傳bintray,gradle安裝不通過,所以如果要使用,clone下來,引入module即可
HttpNet基本和進階使用方式,可以進行合適的封裝,簡化請求邏輯
鴻蒙開發文檔參考:[qr23.cn/AKFP8k
]可以復制地址前往。
構建GET請求:和okhttp類似
RequestParams params = new RequestParams()
.put("userName","oscer")
.put("pwd","oschina");
Request request = new Request.Builder().encode("UTF-8")
.method("GET")
.timeout(13000)
.url("http://www.oschina.net")
.build();
構建POST請求:
//請求參數
RequestParams params = new RequestParams()
.put("userName","oscer")
.putFile("fileName","file")
.put("pwd","oschina");
//請求對象
Request request = new Request.Builder()
.encode("UTF-8")
.method("POST")
.params(params)
.timeout(13000)
.url("http://www.oschina.net")
.build();
POST JSON 請求構建:
Request request = new Request.Builder()
.encode("UTF-8")
.method("POST")
.content(new JsonContent("json")
.timeout(13000)
.url("http://www.oschina.net")
.build();
執行請求:
//構建Http客戶端,這里可以進行全局static final
HttpNetClient client = new HttpNetClient();
client.setProxy("192.168.1.1",80);//您也可以開啟該客戶端全局代理
client.addInterceptor(new Interceptor() {
/* 攔截器在執行請求前都會走到這一步,如果是同步的,就是當前線程,如果是異步,就是子線程
* 因此可以在這里動態添加全局Cookie或其它Header之類的
* 進階使用:如果要求對所有接口Form表單進行全局加密,也可以在這里執行
*/
@Override
public void intercept(Request request) {
Log.e("請求攔截器當前線程: " + Thread.currentThread().getName() + " -- " + request.url());
}
});
//執行異步請求
client.newCall(request)
//如果采用上傳文件方式,可以在這里開啟上傳進度監控
.intercept(new InterceptListener() {
@Override
public void onProgress(final int index, final long currentLength, final long totalLength) {
Log.e("當前進度", " -- " + ((float) currentLength / totalLength) * 100);
}
})
.execute(new Callback() {
@Override
public void onResponse(Response response) {
String body = response.getBody();//getBody()和toStream()是互斥的
InputStream is = response.toStream();//如果采用下載,可以在這里監聽下載進度
}
@Override
public void onFailure(Exception e) {
Log.e("onFailure " + e.getMessage());
}
});
// 也可以在子線程中執行同步請求,如果有幾個接口需要進行順序請求,此方法最佳
try {
Response response = client.newCall(request).execute();
String body = response.getBody();
}catch (Exception e){
e.printStackTrace();
}
Retrofit使用方式,底層網絡實現基于前面的 HttpNetClient,基于運行時注解添加請求配置,UI切換使用鴻蒙EventHandler
// 構建請求java接口,采用動態代理+注解實現,服務器返回什么,Call< 服務器返回json對應的Java bean >即可
public interface LoginService {
//普通POST,方法名添加請求方法注解POST、GET、DELETE、Header等,方法參數添加Form表單注解
@Headers({"Cookie:cid=adcdefg;"})//靜態Header
@POST("api/users/login")
Call
執行請求
public static final String API = "http://www.oschina.net/";
public static Retrofit retrofit = new Retrofit();
retrofit.registerApi(API);//注冊api
//進階使用,假設服務器返回來的json內容是aes加密的,那么可以添加轉化器,攔截響應,aes解密后再返回,此方法一定在子線程執行,直接執行耗時操作
retrofit.setConverterFactory(new ConverterFactory() {
@Override
public void convert(com.haibin.retrofit.Response response) {
response.setBodyString("{json}");//攔截響應數據,修改內容,如aes解密后再返回
Log.e("響應轉換器當前線程: " + Thread.currentThread().getName());
}
});
//執行異步請求,異步請求可以直接在UI線程執行
retrofit.from(LoginService.class)
.login("xxx@qq.com", "123456", 2, 2);
.withHeaders(Headers...)//動態添加某些Header
.execute(new Callback
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
框架
+關注
關注
0文章
403瀏覽量
17489 -
鴻蒙OS
+關注
關注
0文章
188瀏覽量
4396
發布評論請先 登錄
相關推薦
初識鴻蒙OS
1.0版本的設計和開發;2018年,華為公司完成了鴻蒙內核2.0版本的設計和研發;2019年,華為的智慧屏率先搭載鴻蒙操作系統;2020年9月11日,華為正式發布鴻蒙操作系統,并舉行
發表于 09-10 15:28
鴻蒙OS應用程序開發
這份學習文檔主要是帶領大家在鴻蒙OS上學習開發一個應用程序,主要知識點如下:1、U-Boot引導文件燒寫方式;2、內核鏡像燒寫方式;3、鏡像運行。
發表于 09-11 14:39
鴻蒙os系統是什么意思 鴻蒙os系統有什么作用
毫秒級。鴻蒙OS實現模塊化耦合,對應不同設備可彈性部署,鴻蒙OS有三層架構,第一層是內核,第二層是基礎服務,第三層是程序框架,可用于手機、平
發表于 12-17 11:34
鴻蒙 OS 應用開發初體驗
的操作系統平臺和開發框架。HarmonyOS 的目標是實現跨設備的無縫協同和高性能。
DevEco Studio
對標 Android Studio,開發鴻蒙
發表于 11-02 19:38
鴻蒙OS初心是面向IoT,IoT系統碎片化才是鴻蒙需解決的關鍵問題
副總裁楊海松說,“既然我們已經做出了開發者Beta版,這說明我們已經準備好了。” 此次華為主要介紹了鴻蒙OS 2.0會向開發者提供的三個核心能力:分布式的編程
華為鴻蒙OS 2.0帶來哪些智慧體驗?
華為已經定于12月16日在北京發布鴻蒙OS 2.0手機開發者Beta版本。這不僅是手機鴻蒙OS的首次亮相,同時也意味著手機
鴻蒙OS 2.0手機開發者Beta版發布會在京舉辦
三個月前,鴻蒙OS 2.0正式在華為開發者大會2020亮相。12月16日,鴻蒙OS 2.0手機開發
華為正式推出鴻蒙OS的手機開發者Beta版
12月16日上午消息,華為今日宣布正式推出鴻蒙OS的手機開發者Beta版,華為消費者業務軟件部總裁王成錄表示,今年已有美的、九陽、老板電器、海雀科技搭載鴻蒙
鴻蒙os2.0系統官網
的全新芯片,更多個性化操作的推出會讓用戶們更加舒適的使用鴻蒙2.0系統。 鴻蒙2.0系統介紹:DFX 鴻蒙os2.0系統官網下載,為不同的硬件架構和資源提供了基于組件和可定制的DFX
華為開發者大會2021鴻蒙os在哪場
華為開發者大會2021將在10月22日-24日舉辦,地點為東莞松山湖,鴻蒙os 3.0或將與我們見面,那么華為開發者大會2021鴻蒙
評論