2012-06-11 24 views
6

Estoy tratando de hacer una llamada a un servidor. La llamada GET funciona bien y devuelve el json correcto, pero cuando intento hacer una PUT o una POST, el servidor devuelve un error.solicitud POST y PUT AFNetworking

puedo configurar el servidor para recibir los siguientes mensajes:

method POST 
curl -X POST -d "number=NUMBER&name=NAME&lat=32.5713&lon=60.3926" http://server.com/users/ 

method PUT 
curl -X PUT -d "number=USER&name=NAME6&lat=-34.5552&lon=32.3333" http://server.com/users/ 

¿Cómo puedo llamar al servidor con estos dos métodos?

+3

¿Cuál es el error? – Sirens

+1

¿Qué tiene esto que ver con AFNetworking, exactamente? ¿Estás usando AFN para hacer estas solicitudes? ¿Puede publicar ejemplos de código de cómo está utilizando AFN? – mattt

Respuesta

10

me gustaría crear una clase APIClient para todas las solicitudes en lugar de crear un nuevo cliente cada vez que hago una petición.

Ver: https://github.com/AFNetworking/AFNetworking/tree/master/Example/Classes AFTwitterAPIClient.h & AFTwitterAPIClient.m

pero en base a su pregunta. Creo que el código se verá algo así. (Código no se probó)

NSURL *url = [NSURL URLWithString:@"http://server.com"]; 
AFHTTPClient *client = [[AFHTTPClient alloc]initWithBaseURL:url]; 

//depending on what kind of response you expect.. change it if you expect XML 
[client registerHTTPOperationClass:[AFJSONRequestOperation class]]; 

NSDictionary *params = [[NSDictionary alloc]initWithObjectsAndKeys: 
         @"NUMBER",@"number", 
         @"NAME",@"name", 
         @"32.5713",@"lat", 
         @"60.3926",@"lon", 
         nil]; 
[client putPath:@"users" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"success"); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"failure"); 
}]; 

En cuanto a la solicitud de post .. sólo tiene que utilizar en lugar de PostPath putPath y que va a funcionar bien. :)

Espero que haya ayudado.

Saludos,

Steve0hh

1

Dado que no existe un código asociado, supongo que utilice getPath:parameters:success:failure: o ninguna parameters enviado con la POST reqd que podría ser requerido por su servidor/API.

postPath:parameters:success:failure: 
putPath:parameters:success:failure: 

también se refieren AFNetworking Post Request de código de ejemplo con POST con AFnetworking

Cuestiones relacionadas