Tengo un script web que acepta la cadena JSON como entrada a través de la solicitud HTTP POST.
He venido a través de varios AFNetworking 1.x ejemplo para el mismo , puede alguien por favor que me señale o dar AFNetworking 2.0 ejemplo para hacer una solicitud POST HTTP a un script web con formato JSON como entrada ?

Gracias

  • Leer la guía de migración en el AFNetworking página de github.
  • el problema es i m nuevo a AFNetworking así que realmente no saber y el deseo de comprender las versiones anteriores I m provenientes de ASIHTTP de fondo gracias por la sugerencia, aunque.
  • Alguna idea sobre esto ?
  • Búsqueda de JSON y PUBLICAR en cocoadocs.org/docsets/AFNetworking/2.1.0 usted necesita para probar algo y, a continuación, pedir ayuda…
  • deseo que era tan evidente que incluso un principiante podría entender

5 Comentarios

  1. 78

    después de la búsqueda de google docs y de probar algunos de los códigos conseguí siguiente como un ejemplo

     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    
    
    NSDictionary *params = @ {@"user" :txtUserName, @"pwd" :txtPwd };
    
    
    [manager POST:URL_SIGNIN parameters:params
    success:^(AFHTTPRequestOperation *operation, id responseObject)
    {
        NSLog(@"JSON: %@", responseObject);
    }
    failure:
     ^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"Error: %@", error);
     }];

    También no se olvide de establecer encabezado de respuesta tipo en el script de servidor como Application/json.

    • esto no funciona para mí. sigo recibiendo este código de estado de error: 200, encabezados { Connection = cerrar; «Content-Length» = 59; «Content-Type» = «text/html; charset=UTF-8»; Date = «Mon, 21 Apr 2014 06:44:34 GMT»; Server = «Apache/2.2.25 (Amazonas)»; «X-Powered-By» = «/PHP 5.3.27»; } }, NSLocalizedDescription=error de Solicitud: inaceptable content-type: text/html}
    • usted no hizo caso de mi última instrucción en la respuesta 🙂 «También no se olvide de establecer encabezado de respuesta tipo en el script de servidor como Application/json»
    • Usted puede verificar esta respuesta para el JSON parser para aceptar «text/html» tipo de contenido si no cambio de secuencia de comandos de servidor.
    • ajuste el tipo de respuesta como text/html y envío de JSON es una mala práctica no hay una norma API hace que.
    • Esto no funciona para mí también. Estoy recibiendo «JSON texto no empezar con matriz o un objeto y la opción para permitir que los fragmentos no se establece.»
    • NSCocoaErrorDomain Código=3840
    • esto podría ayudarle a stackoverflow.com/questions/21452385/…

  2. 20

    Aquí es algunos de plantilla simple para el POST de los parámetros almacenados en NSMutableDictionary parámetros en formato JSON. Funciona con AFNetworking 2.4.1.

    NSString *baseURL = @"http://your-server.com/";
    NSString *path = @"method/url/";
    
    NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
    [parameters setObject:@"value" forKey:@"key"];
    
    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    
    [manager POST:path parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
    
            NSLog(@"JSON: %@", responseObject);
            //here is place for code executed in success case
    
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
    
            //here is place for code executed in error case
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error while sending POST"
                                                                message:@"Sorry, try again."
                                                               delegate:nil
                                                      cancelButtonTitle:@"Ok"
                                                      otherButtonTitles:nil];
            [alertView show];
    
            NSLog(@"Error: %@", [error localizedDescription]);
    }];
    • No estoy seguro, pero esto ya no funciona. Por favor revise esta question.
    • No he comprobado para la versión más reciente de AFNetworking. Seguramente funciona en la versión 2.4.1.
    • Bien ! Gracias.
  3. 8

    Si quieres publicar json del servidor, usted debe publicar sus parámetros de uso de esta forma a continuación.

    Utilización de esta manera , usted puede encontrar el «Content-Type» en el encabezado de la solicitud es «application/json».

    AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    manager.requestSerializer = serializer;
    
     NSDictionary *paras = @{@"uid" : @(10020)};
    
    [manager POST:@"http://your.request.url" parameters:paras success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
    
    
    }failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    
        NSLog(@"the falire is %@", error);
    
    }];

    Posible esta ayuda. 🙂

    • Eso funcionó, Gracias. Por favor califique mis respuestas 🙂
  4. 5

    En swift:

    Agregar esto en manager.AFHTTPRequestOperationManager

    manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.PrettyPrinted)
  5. 2

    si quieres publicar parámetro diccionario cadena json utilizar el siguiente código

    NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"your_webservice_post_url"]];
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    NSError *error;
    NSDictionary *parameters = @{@"customValue":@"value"};
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:&error];
     [urlRequest setHTTPMethod:@"POST"];
     [urlRequest setHTTPBody:jsonData];

Dejar respuesta

Please enter your comment!
Please enter your name here