Retrofit @Body apareciendo como parámetro en la petición HTTP
He utilizado anteriormente el Retrofit de Square con éxito para una @GET
la API web @GET
pero al intentar enviar JSON como @BODY
en una llamada @POST
, en el servidor (Rails) el JSON aparece como Parámetros en lugar de la solicitud de cuerpo.
Mi comprensión es que @BODY
agregará ese parámetro de método a la solicitud en el cuerpo.
- ¿Cómo crear un Api seguro de Rails REST para mi aplicación?
- ¿Qué puedo usar para permitir que una aplicación de Android se comunique con una aplicación de rails
- MultipartEntityBuilder para enviar imágenes al servidor de carril
- ¿Cómo usar doorkeeper con un cliente android?
- Authenticity_token en Rails + Android
Alguna idea de lo que estoy haciendo mal?
WebApi :
@POST("/api/v1/gear/scans.json") Response postScans( @Header(HEADER_AUTH) String token, @Body JsonObject scans );
Realizar solicitud web:
RestAdapter restAdapter = new RestAdapter.Builder() .setServer(api_url) .build(); WebApi webApi = restAdapter.create(AssetsWebApi.class); Response response = webApi.postScans(auth_token, valid_json);
- Configurar la autenticación de http
- Iniciar el entorno de desarrollo de rails en android
- Creación de aplicaciones para iphone y Android para aplicaciones de rails existentes
- Cómo Firebase Auth con Rails?
- Autenticación mediante Facebook a través de Rails API
- No se pueden enviar datos de JSON desde Android al servidor ROR
- Tipo de entrada = número no es posible insertar números negativos en el teléfono móvil
- La mejor práctica al permitir que sólo la aplicación de Android acceda a Rails API
Resulta que si desea enviar datos POST como parte del cuerpo de la solicitud, debe anotar el método de interfaz de la API como @FormUrlEncoded
y pasar el contenido del cuerpo como @Field
como se muestra a continuación:
@FormUrlEncoded @POST("/api/v1/gear/scans.json") Response postScans( @Header(HEADER_AUTH) String token, @Field("scans") JsonArray scans );
Async llamada para @Rickster:
@POST("/api/v1/gear/scans.json") void postScans( @Header(HEADER_AUTH) String token, @Body JsonObject scans, Callback<PostSuccessResponseWrapper> callback );
- (R.dimen.padding_medium) ¿No se puede resolver o no es un campo?
- Android: ¿Cuál es el significado del atributo del receptor exportado?