Inicio > iOS > NSURLConnection, NSMutableURLRequest y user-agent

NSURLConnection, NSMutableURLRequest y user-agent

Cuando intentamos establecer conexiones HTTP con un servidor mediante una NSURLConnection si le queremos forzar a que tenga un user-agent determinado para que nuestro servidor lo reconozca lo normal es hacerlo del siguiente modo:

//componemos la URL

NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]  cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
     

//introduce USERAGENT

[theRequest setValue:self.userAgent forHTTPHeaderField:@”User-Agent”];

Pero lo que a veces pasa es que en el servidor no se recibe el valor que contiene el NSString “self.userAgent” sino que mete un valor del tipo “/CFNetwork/10.*.*”, esto se debe a que el servidor redirige a otra dirección. Para evitar esto debemos añadir un delegado que se llama cada vez que la conexión es rebotada en el servidor.

Este es el delegado que debemos añadir y en donde volveremos a forzar a que el user-agent sea el que nostros deseamos:

-(NSURLRequest *)connection:(NSURLConnection*)connection willSendRequest:(NSURLRequest*)request redirectResponse:(NSURLResponse*)redirectResponse
{
      NSMutableURLRequest *newReq = [request mutableCopy];
      [newReq setValue:self.userAgent forHTTPHeaderField:@”User-Agent”];
      return [newReq autorelease];
}

Anuncios
Categorías:iOS Etiquetas:
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: