BaseURL
com\ecarx\appstore\global\http\HttpUtil.smali
# static fields
.field private static final BASE_URL:Ljava/lang/String; = "http://api.xchanger.cn/api/v1/"
API
smali\com\ecarx\appstore\global\http\Api.smali
Line 135: .method public abstract getAppBanner()Lio/reactivex/Observable;
Line 151: .method public abstract getAppCategories()Lio/reactivex/Observable;
Line 167: .method public abstract getAppVersion()Lio/reactivex/Observable;
Line 276: .method public abstract getFlowInfo()Lio/reactivex/Observable;
Line 292: .method public abstract getHotInSearch()Lio/reactivex/Observable;
Line 308: .method public abstract getSpecials()Lretrofit2/Call;
以getAPPBanner爲例
接口地址應該爲
http://api.xchanger.cn/api/v1/banner/index
但是返回的是個網頁,這裏需要添加請求頭(需要抓包分析)
move-result-object v0 //move-result-object(返回對象)指令獲取返回結果
const-string/jumbo v2, "X-APP-ID" //聲明的引用是獲取字符串常量池的數據
.line 37
//(如果方法是私有的,則使用invoke-direct ,否則invoke-virtual )用於調用protected或public函數// >表示從屬關係 addHeader是okhttp3裏面Request的函數
invoke-virtual {v0, v2, v1}, Lokhttp3/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lokhttp3/Request$Builder;
Okhttp代碼
public Builder addHeader(String name, String value) {
headers.add(name, value);
return this;
}
獲取商品分類接口
http://api.xchanger.cn/api/v1/product/catalog
.method public abstract getAppCategories()Lio/reactivex/Observable;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lio/reactivex/Observable",
"<",
"Lcom/ecarx/appstore/global/entity/ApkCategoriesEntity;",
">;"
}
.end annotation
.annotation runtime Lretrofit2/http/GET;
value = "product/catalog"//Retrofit的Interface定義
.end annotation
.end method