Problemas al integrar Objective-C con ActiveCollab 3 Beta API

Estoy tratando de implementar un programa Objective C para interactuar con activeCollab 3 beta y tengo algunos problemas. Puedo ingresar la url que genera el NSLog en el navegador y funciona bien extrayendo el xml para todos los proyectos y no quiere funcionar para mí cuando intento acceder a él a través de este programa, me está dando un HTTP 403 error. Soy nuevo en Objective C y estoy haciendo esto como una experiencia de aprendizaje, por lo que algunos códigos pueden ser redundantes. Gracias de antemano por cualquier ayuda. La importación está entre paréntesis angulares, pero hará que se oculte en StackOverflow, por lo que la he colocado entre comillas.

#importación "Fundación/Fundación.h" int main (int argc, const char * argv[]) { NSString *token = @"my-token"; NSString *path_info = @"proyectos"; NSString *url = @"http://mi-sitio/api.php?"; NSString *post = [[NSString alloc] initWithFormat:@"path_info=%@&auth_api_token=%@",path_info, token]; NSLog(@"Publicar: %@", publicar); NSString *nuevaSolicitud; newRequest = [url stringByAppendingString:post]; NSLog(@"Ruta: %@", nuevaSolicitud); NSData *postData = [newRequest dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]]; [solicitar setURL:[NSURL URLWithString:newRequest]]; [solicitar setHTTPMethod:@"POST"]; [solicitar setValue:postLength forHTTPHeaderField:@"Content-Length"]; [solicitar setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; [solicitar setHTTPBody:postData]; NSURLResponse *respuesta; NSError *err; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returnResponse:&response error:&err]; NSString *returnData = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease]; NSLog(@"%@", returnData); //printf("Línea de impresión"); devolver 0; }

preguntado el 04 de julio de 12 a las 07:07

1 Respuestas

Sus encabezados de solicitud son restrictivos e innecesarios, y para AC API desea una solicitud GET en lugar de POST

int main (int argc, const char * argv[]) 
{

    NSString *requestString = [[NSString alloc] initWithFormat:@"path_info=%@&auth_api_token=%@", path_info, token];
    NSLog(@"Post: %@", requestString);

    NSString *newRequest;
    newRequest = [url stringByAppendingString: requestString];

    NSLog(@"Path: %@", newRequest);

    NSData *postData = [newRequest dataUsingEncoding: NSASCIIStringEncoding allowLossyConversion: YES];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

    NSLog(@"Data: %@", postData);

    [request setURL: [NSURL URLWithString:newRequest]];
    [request setHTTPMethod: @"GET"];

    NSURLResponse *response;

    NSError *err;
    NSData *responseData = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &err];
    NSString *returnData = [[[NSString alloc] initWithData: responseData encoding: NSUTF8StringEncoding] autorelease];
    NSLog(@"Return: %@", returnData);

    //printf("Print line");
    return 0;
}

Respondido 04 Jul 12, 08:07

Eso tiene sentido, no me di cuenta de que estaba tratando de enviar varios encabezados, pensé que se estaban enviando todos a la vez. - jon hemstreet

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.