AFNetworking HTTP eliminar cuerpo de uso en lugar de URL

Estoy intentando enviar una request HTTP DELETE a un service web RESTful Django desde mi aplicación iOS. Yo uso AFNetworking 2.0 (2.4).

Después de analizar AFHTTPREquestOperation en el bloque de éxito de mi llamada API, encontré que el cuerpo de la request es nula. Los parameters URL codificados y enviados en la URL.

 <AFHTTPRequestOperation: 0x10c587940, state: isFinished, cancelled: NO request: <NSMutableURLRequest: 0x10c521ab0> { URL: https://anURL.com/connections?data%5Bconnections%5D%5B%5D%5Bid%5D=106 }, response: <NSHTTPURLResponse: 0x10c5c7590> { URL: anURL.com/ connections?data%5Bconnections%5D%5B%5D%5Bid%5D=106 } { status code: 200, headers { Connection = "Keep-Alive"; "Content-Type" = "application/json"; Date = "Tue, 05 Aug 2014 14:07:53 GMT"; "Keep-Alive" = "timeout=5, max=100"; Server = "Apache/2.4.7 (Ubuntu)"; "Transfer-Encoding" = Identity; } }> 

Ahora me pregunto si es posible enviar los parameters en el cuerpo de la request, como se hizo con HTTP POST en lugar de enviarlos en la URL. ¿Es eso posible?

¿Cómo hacerlo usando AFNetworking?

Cómo envío atm:

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; [manager DELETE:host_url parameters:params success:success failure:failure]; 

El cuerpo que quiero enviar (lo que está en el parámetro "params" arriba):

 { "data": { "connections": [ { "id": 92 }, { "id": 91 } ] } } 

Tenía el mismo problema. Como la pregunta aún está abierta, publicaremos la respuesta aquí. Todo lo que necesita hacer es cambiar los methods HTTP, que codifican parameters como una cadena de consulta (por defecto GET, HEAD, y DELETE). El serializador de request tiene la propiedad HTTPMethodsEncodingParametersInURI para eso. Simplemente establézcalo en GET, HEAD y ya habrá terminado:

 serializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil]; 

La respuesta proporcionada por @ f3n1kc se corrige, pero en caso de que busque la Versión Swift:

 let manager = AFHTTPSessionManager() manager.requestSerializer = AFHTTPRequestSerializer() manager.requestSerializer.HTTPMethodsEncodingParametersInURI = ["GET", "HEAD"]