0
我想實現一個請求,我可以用Retrofit
所以發在同一時間多個請求,我創建了一個這樣的接口:改造@FieldMap參數類型必須是地圖
@FormUrlEncoded
@POST("/locations/add.json")
void sendMultipleLocations(@Query("token")String token, @FieldMap List<Map<String, String>> multipleLocations, Callback<String> callback);
然後,我在列表中建立地圖數據,然後推送。
private void sendLocations(List<Map<String, String>> multipleLocations) {
RestClient.get(this).sendMultipleLocations("token", multipleLocations, new Callback<String>() {
@Override
public void success(String s, Response response) {
Log.e("MultipleLocationResp", s);
}
@Override
public void failure(RetrofitError error) {
error.printStackTrace();
}
});
}
而且我不斷收到此錯誤:
java.lang.IllegalArgumentException: PodApi.sendMultipleLocations: @FieldMap parameter type must be Map. (parameter #2)
at retrofit.RestMethodInfo.methodError(RestMethodInfo.java:107)
at retrofit.RestMethodInfo.parameterError(RestMethodInfo.java:111)
at retrofit.RestMethodInfo.parseParameters(RestMethodInfo.java:365)
at retrofit.RestMethodInfo.init(RestMethodInfo.java:118)
at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:294)
at retrofit.RestAdapter$RestHandler.access$100(RestAdapter.java:220)
at retrofit.RestAdapter$RestHandler$2.obtainResponse(RestAdapter.java:278)
at retrofit.CallbackRunnable.run(CallbackRunnable.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at retrofit.Platform$Android$2$1.run(Platform.java:142)
at java.lang.Thread.run(Thread.java:818)
我不想提出一個請求。我打算用不同的數據發出多個請求。這就是爲什麼它排隊 –
然後,你必須多次調用'sendMultipleLocations()'。一次調用服務的方法總是會導致一個http調用。使用for循環發送多個請求。 – patloew