Android-Retrofitリクエスト注記分析

4943 ワード

Androidリクエスト方式はPOST、PUT、DELETE、HEADにほかならない.Retrofitの注釈:1.GET———資源を探す(調べる).POST―――修正資源(修正)3.PUT———ファイルをアップロード(増加)4.DELETE—-ファイルを削除(削除)5.HEAD―――ページのヘッダのみを要求する
@QueryMap、@Path、@Body、@FormUrlEncoded/@Field、@Header/@Headers.彼らの違いを見てみましょう
@Query(GETリクエスト):
urlの後にパラメータを接続するには、次のようにします.
@GET("book/search")
Call getSearchBook(@Query("q") String name);//name      

次のようになります.
@GET("book/search?q=name")
Call getSearchBook();
@QueryMap(GET  ):

もちろん、パラメータが多い場合は、次のようにMapに配置できます.
@GET("book/search")
Call getSearchBook(@QueryMap Map<String, String> options);
@Path(GET  ):

urlのフィールドを置換するには、次のようにします.
@GET("group/{id}/users")
Call groupList(@Path("id") int groupId);

このようなリクエストインタフェースのようにgroupとuserの間に不確定なid値が入力される必要がある場合、この方法でよい.所定の値フィールドを{}で囲みます.もちろん{}の名前はidとは限りません.任意に取ることができますが、@Path後括弧の名前と同じにする必要があります.userの後にパラメータを入力する必要がある場合は、次のようにQueryで接続できます.
@GET("group/{id}/users")
Call groupList(@Path("id") int groupId,@Query("sort") String sort);

このメソッドを呼び出すと、groupIdが1に転送され、sortが「2」に転送されると仮定すると、urlがgroup/1/usersに結合されますか?sort=2で、もちろん最後にお願いすると前のbaseUrlも付きます.
@Body(POSTリクエスト):
HTTPリクエストボディとしてオブジェクトを指定できます.たとえば、次のようにします.
@POST("users/new")
Call<User> createUser(@Body User user);

私たちが入力したUserエンティティクラスを転送用のHTTPリクエストボディに変換し、ネットワークリクエストを行います.
@Field(POSTリクエスト):
フォームデータを転送するには、次の手順に従います.
@FormUrlEncoded
@POST("user/edit")
Call updateUser(@Field("first_name") String first, @Field("last_name") String last);

注意冒頭に@FormUrlEncodedという注釈を多く付けなければなりません.そうしないと、エラーが発生します.フォームには当然、複数のキー値ペアが構成されています.ここでfirst_nameはキーであり,具体的に入力されるfirstは値である.
@Header/@Headers(POSTリクエスト):
要求ヘッダを追加するには、次の手順に従います.
@GET("user")
Call getUser(@Header("Authorization") String authorization)

頭のAuthorizationプロパティを入力するauthorizationに設定することを示します.もちろん@Headersで表すこともできますが、役割は同じです.例えば、
@Headers("Cache-Control: max-age=640000")
@GET("user")
Call<User> getUser()

もちろん、複数の設定ができます.
@Headers({
    "Accept: application/vnd.github.v3.full+json",
    "User-Agent: Retrofit-Sample-App"
})
@GET("user")
Call getUser()

では、上記のRetrofitServiceインタフェースクラスの説明の差は多くありません.
原文アドレスはあなたに一歩一歩MVP+Retrofit+RxJavaネットワーク要求フレームワークを構築することを教えます