Necesito configurar el encabezado HTTP para una solicitud. En la documentación de la clase NSURLRequest no encontré nada con respecto al encabezado HTTP. ¿Cómo puedo configurar el encabezado HTTP para que contenga datos personalizados?NSURLRequest configurar el encabezado HTTP
Respuesta
Es necesario utilizar un NSMutableURLRequest
NSMutableURLRequest* request = [[[NSMutableURLRequest alloc] initWithURL:url]
autorelease];
[request setValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
o para agregar un encabezado:
[request addValue:VALUE forHTTPHeaderField:@"Field You Want To Set"];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"your value" forHTTPHeaderField:@"for key"];//change this according to your need.
[request setHTTPBody:postData];
Probablemente deba agregar alguna explicación para el código que ha publicado. – MasterAM
¿Qué significa setValue: @ "application/x-www-form-urlencoded"? ¿Es así de personalizado? –
En el caso de soporte limitado para POST en el software de cliente HTTP donde no se pueden enviar datos puros en el cuerpo del mensaje HTTP, RESTfm puede manejar datos codificados en application/x-www-form-urlencoded o multipart/form-data formatos. Nota: Los formatos application/x-www-form-urlencoded y multipart/form-data solo son aplicables al método HTTP POST Nota 2: Este formato utiliza el mismo esquema 'URL encoding' requerido para GET query string parámetros como se describe aquí. Ventajas Soporte para un tamaño de datos mayor que el que es posible usando una cadena de consulta GET. –
Puede agregar valor en NSMutableURLRequest
para campo_cabecera:
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:VALUE forHTTPHeaderField:@"cookie"];
Esto está funcionando para mí.
de Swift
let url: NSURL = NSURL(string: APIBaseURL + "&login=1951&pass=1234")!
var params = ["login":"1951", "pass":"1234"]
request = NSMutableURLRequest(URL:url)
request.HTTPMethod = "POST"
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
Estoy usando un tipo similar de código para hacer una solicitud, pero está devolviendo ** datos ** nulos. Intenté lo que está mal y lo único que pude descubrir fue que el valor de respuesta que vuelve tiene un valor diferente para "Tipo de contenido" en contraposición a lo que intento agregar al principio del código. 'request.setValue (" Some value ", forHTTPHeaderField:" Content-Type ")' ¿Esto funciona para usted? – Sashi
intente este encabezado request.addValue ("text/html", forHTTPHeaderField: "Content-Type") –
Lo intenté también, pero no funcionó. Finalmente, al usar myParameters.dataUsingEncoding funcionó para mí, estaba usando otra cosa, esa es la razón por la que creo que no funcionaba. Gracias por la ayuda. – Sashi
Código de ejemplo
- (void)reqUserBalance:(NSString*)reward_scheme_id id:(NSString*)user_id success:(void (^)(id responseObject))success failure:(void (^)(id responseObject))failure{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@reward/%@/user/%@/balance",URL_SERVER,reward_scheme_id,user_id]];
NSLog(@"%@",url);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"true" forHTTPHeaderField:@"Bypass"];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response,
NSData *data, NSError *connectionError)
{
options:kNilOptions error:NULL];
if (data.length > 0 && connectionError == nil)
{
NSDictionary * userPoints = [NSJSONSerialization JSONObjectWithData:data
options:0
error:NULL];
NSString * points = [[userPoints objectForKey:@"points"] stringValue];
NSLog(@"%@",points);
[SecuritySetting sharedInstance].usearAvailablePoints = points;
}
}];
}
Sé que es tarde, pero puede ayudar a los demás, para SWIFT 3,0
let url = NSURL(string: "http://www.yourwebsite.com")
let mutAbleRequest = NSMutableURLRequest(URL: url!)
mutAbleRequest.setValue("YOUR_HEADER_VALUE", forHTTPHeaderField:"YOUR_HEADER_NAME")
myWebView.loadRequest(mutAbleRequest)
- 1. Agregar encabezado HTTP a NSURLRequest
- 2. Cómo configurar el encabezado usando el método http post
- 3. Configurar un proxy HTTP para insertar un encabezado
- 4. redirect_to con encabezado HTTP
- 5. ¿Qué es el "encabezado HTTP sin procesar"? ¿Cuál es la diferencia entre "encabezado HTTP" y "encabezado HTTP sin procesar"?
- 6. ¿Cómo configurar la configuración para aceptar el token de autenticación en el encabezado HTTP?
- 7. con NSURLRequest
- 8. Recibir encabezados HTTP a través de NSURLRequest/NSURLConnection en Cocoa
- 9. Cómo enviar datos json en la solicitud Http usando NSURLRequest
- 10. HTTP rango encabezado
- 11. encabezado HTTP Accept significa
- 12. PHP eliminar encabezado HTTP
- 13. Encabezado HTTP - ntCoent-Length
- 14. WCF Soap Actions en el encabezado HTTP o encabezado SOAP?
- 15. redirect_to custom http encabezado
- 16. HTTP: Generando encabezado ETag
- 17. Cómo configurar el encabezado de DataGridview RowHeader?
- 18. ColdFusion: cómo configurar el encabezado Content-Length
- 19. ¿Cómo interpretar el encabezado HTTP Aceptar vacío?
- 20. ¿Qué significa el encabezado HTTP Pragma: público?
- 21. ¿Cómo configurar y recuperar cookies en el encabezado HTTP en Python?
- 22. Encabezado de autorización HTTP ASP.NET
- 23. SoapClient set encabezado HTTP personalizado
- 24. Encabezado futuro lejano y HTTP 304
- 25. Encabezado de autorización HTTP personalizado
- 26. ¿Cuál es el campo "Content-Length" en el encabezado HTTP?
- 27. NSURLRequest no envía cookies
- 28. NSURLConnection/NSURLRequest gzip support
- 29. NSURLRequest a NSString
- 30. Cómo configurar este encabezado de soap php?
¡Justo lo que estaba buscando! ¡De acuerdo! –
¿Hay alguna API para agregar diccionario de encabezados? –
¡Excelente respuesta! Quería señalar que la [respuesta] de RamS (http://stackoverflow.com/a/20760445/1778488) tiene buena documentación. – fskirschbaum