Android RetrofitライブラリのURLに2種類の値を渡してみましたが、方法1はエラーなしで実行されますが、方法2ではエラーが発生します。AndroidでのURLへの値渡しの違いRetrofitライブラリ
私は方法2によってスローされるエラー
方法2にAPIエンドポイントのクエリ方法1での注釈付きパラメータの値を持つキー名と変数置換によってパラメータ値を送っ:java.lang.IllegalArgumentException: URL query string "appid={apikey}&lat={lat}&lon={lon}&units={units}" must not have replace block. For dynamic query parameters use @Query.
マイURL:データ/ 2.5 /天候LAT = 77.603287 & LON = 12.97623 & APPID = f5138 &単位=メトリック
方法1:(ウェル実行される)
@GET("data/2.5/weather")
Call<Weather> getWeatherReport(@Query("lat") String lat,
@Query("lon") String lng,
@Query("appid") String appid,
@Query("units") String units);
方法2:私は、第二の方法において、ならびに(エラー)
@GET("data/2.5/weather?appid={apikey}&lat={lat}&lon={lon}&units={units}")
Call<Weather> getWeatherReport1(@Query("apikey") String apikey,
@Query("lat") String lat,
@Query("lon") String lng,
@Query("units") String units);
@Path試みました。
私の質問は です1.両方の方法の違いは何ですか? 2. 2番目の方法がうまくいかなかったのはなぜですか?
を理論的にパスに置き換える必要があります。最初のものは、あなたのためのクエリ文字列を作成し、2番目のものは手動で作成します。 –