问题
I'm trying to submit a call to a server that requires 2 sets of information, this is my interface:
@POST("/venues/get-by-location")
void getByLocation(@Body Coordinates coordinates,
@Body MaxDistanceBody maxDistance,
Callback<MyCallback> callback);
but I receive this error: " Multiple @Body method annotations found."
How can I send multiple objects in one Post request? Thanks!
回答1:
Maybe this can help:
@Multipart
@POST("/venues/get-by-location")
void getByLocation(@Part("coordinates") Coordinates coordinates,
@Part("maxDistanceBody") MaxDistanceBody maxDistance,
Callback callback);
回答2:
If you just want to send them as a regular body, you can create a helper class that contains all your values. Something like:
KOTLIN:
class VenuesRequestBody(coordinates: Coordinates, maxDistance: MaxDistance)
-
@POST("/venues/get-by-location")
fun getByLocation(@Body loginRequest: LoginRequest): Call<MyCallback>
JAVA (written without testing):
public class VenuesRequestBody {
Coordinates coordinates;
MaxDistance maxDistance;
VenuesRequestBody(Coordinates coordinates, MaxDistance maxDistance) {
this.coordinates = coordinates;
this.maxDistance = maxDistance;
}
}
-
@POST("/venues/get-by-location")
void getByLocation(@Body VenuesRequestBody requestBody,
Callback<MyCallback> callback);
回答3:
Try this one:
@Multipart
@POST("/merchantservice/saveservice")
void SaveServiceApi(
@Body MultipartTypedOutput file,
@Body MultipartTypedOutput Videofile,
@Query("title") String title,
Callback<ResponseSaveService> callback);
来源:https://stackoverflow.com/questions/25252359/retrofit-multiple-post-params