app - ¿Puedo hacer solicitudes POST o GET desde una aplicación iphone?
files app iphone (2)
Si está utilizando Objective C, necesitará usar las clases NSURL, NSURLRequest y NURLConnection. Apple NSURLRequest doc . HttpRequest es para JavaScript.
¿Hay alguna manera de usar el SDK de iPhone para obtener los mismos resultados que los métodos HTTP POST o GET?
Suponga que su clase tiene una variable de instancia responseData
, luego:
responseData = [[NSMutableData data] retain];
NSURLRequest *request =
[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
Y luego agrega los siguientes métodos a tu clase:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
// Show error
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// Once this method is invoked, "responseData" contains the complete result
}
Esto enviará un GET. Para cuando se llame al método final, responseData
contendrá la respuesta HTTP completa (convertir a cadena con [[NSString alloc] initWithData: encoding:].
Alternativamente, para POST, reemplace el primer bloque de código con:
NSMutableURLRequest *request =
[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]];
[request setHTTPMethod:@"POST"];
NSString *postString = @"Some post string";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];