¿cómo puedo convertir NSURLRequest en NSString?NSURLRequest a NSString
Respuesta
Depende de la información que desee en la cadena. ¿Desea que contenga todos los valores de las variables de instancia en el objeto? Si es así, vas a necesitar escribir tu propio método que haga eso. Tal vez la subclase NSURLRequest
y anule description
. También puede usar el reflejo para obtener todos los ivars privados e imprimir todo desde otra clase.
O simplemente use un depurador para inspeccionar los valores.
- (NSString*) urlRequestToString:(NSURLRequest*)urlRequest
{
NSString *requestPath = [[urlRequest URL] absoluteString];
return requestPath;
}
Esto solo imprime la URL de NSURLRequest. Eso no es lo único que es importante en NSURLRequest. – rplankenhorn
@rplankenhorn - Claramente. También es claramente lo que el OP fue después. –
NSURLRequest *urlRequest;
...
NSLog(@"%@", [urlRequest allHTTPHeaderFields]);
NSLog(@"%@",[urlRequest valueForHTTPHeaderField:field]);
En este ejemplo, urlRequest es un NSURLrequest (del ejemplo anterior más arriba). La segunda línea le permite imprimir el valor de un campo específico 'campo' que se ha agregado a NSURLRequest.
a partir de documentos de Apple
- (NSString *)valueForHTTPHeaderField:(NSString *)field Parameters
campo
El nombre del campo de cabecera cuyo valor va a ser devuelto. De acuerdo con el HTTP RFC, los nombres de los campos del encabezado HTTP son insensibles a mayúsculas y minúsculas.
Valor devuelto
El valor asociado con el campo campo de cabecera, o nil si no hay ningún campo de cabecera correspondiente.
¿Por qué esto ayuda a responder la pregunta? ¿Y cómo se agrega esto a las otras respuestas? Parece una respuesta inútil y no ayuda a nadie -1 – Popeye
@Popeye - muestra otro método método para obtener NSURLRequest como una cadena, exactamente como por la pregunta original y no una proporcionada por ninguna otra respuesta en la página. ¿Cómo en el mundo es así de inútil? –
Bueno, aunque no es así. Como ninguno de nosotros sabe cuál es la variable 'urlRequest', podría ser cualquier cosa (Obvious one sería NSURLRequest pero un novato podría no saber eso) y ¿qué es' field'? Como 'HTTPHeaderFields' tiene bastantes campos, esto podría ser absolutamente cualquier cosa. Entonces esto en realidad no ayuda a resolver el problema. Debes hacer dos cosas para proporcionar todo el código y explicar tu código hasta que mi -1 permanezca. – Popeye
Si está utilizando rápida, se puede aplicar la siguiente extension
:
extension NSURLRequest: DebugPrintable {
public func extendedDescription() -> String {
var result = "<\(NSStringFromClass(self.dynamicType)): " + String(format: "%p", self)
result += "; HTTPMethod=" + (HTTPMethod ?? "nil") + "; URL=\(URL); timeoutInterval=" + String(format: "%.1fs", timeoutInterval) + "> {"
// Add header fields.
if let headers = allHTTPHeaderFields {
result += "\nallHTTPHeaderFields {"
for (key, value) in headers {
result += "\n\t\(key) : '\(value)'"
}
result += "\n}"
}
if let body = HTTPBody {
result += "\nHTTPBody {\n " + ((NSString(data: body, encoding: NSASCIIStringEncoding) ?? "") as String) + "}"
}
return result + "\n}"
}
public override var debugDescription: String {
return extendedDescription()
}
public override var description: String {
return extendedDescription()
}
}
O echa un vistazo a este GIST: https://gist.github.com/tomaskraina/d644af49e4968de85e34
Si se imprime, se muestra algo similar a lo siguiente:
<NSMutableURLRequest: 0x7fa91977e390; HTTPMethod=POST; URL=https://myapi.com/api/something; timeoutInterval=300.0s> {
allHTTPHeaderFields {
Accept-Encoding : 'gzip'
Content-Type : 'application/json'
Accept : 'application/json'
}
HTTPBody {
{"key1":"value1"}
}
}
Gracias, realmente me ayudó a depurar una llamada objetiva a la que estaba migrando rápidamente. – greentor
en iOS 9/7 Xcode puede utilizar request.URLString
en Swift (o en Obje ctivo-C, en realidad) tio
- 1. Agregar encabezado HTTP a NSURLRequest
- 2. NSURLRequest no envía cookies
- 3. Perder un/al convertir de NSURL a NSURLRequest
- 4. con NSURLRequest
- 5. NSURLRequest: Cómo cambiar httpMethod "GET" a "POST"
- 6. NSURLRequest - URL de codificación para NSURLRequest Cuerpo POST (iPhone objetivo-C)
- 7. NSURLConnection/NSURLRequest gzip support
- 8. Cómo agregar un NSString a otro NSString
- 9. Crea una cookie para NSURLRequest?
- 10. NSURLRequest configurar el encabezado HTTP
- 11. ¿Agregar NSString a NSURL?
- 12. NSString a NSURL?
- 13. Convertir char a NSString
- 14. NSString (hex) a bytes
- 15. Casting NSObject a NSString
- 16. ¿Convierte NSString a NSInteger?
- 17. NSString a la ecuación
- 18. NSString a NSDate
- 19. NSString a NSArray
- 20. NSString a NSUInteger
- 21. Convertir NSDate a NSString
- 22. BOOL a NSString
- 23. NSString a NSURL
- 24. convertir NSDictionary a NSString
- 25. No hay conexión a Internet Manejo en UIWebView y NSURLRequest
- 26. Recibir encabezados HTTP a través de NSURLRequest/NSURLConnection en Cocoa
- 27. uso de NSString estático frente a constantes NSString en línea
- 28. Cómo enviar datos json en la solicitud Http usando NSURLRequest
- 29. Cómo convertir a NSString bytes
- 30. iPhone SDK NSString A NSDate
TNX ... pero soy nuevo en el cacao ... en mi código: NSURLRequest * = newRequest solicitud; \t \t NSLog (@ "% @", newRequest); // Necesito poner " " en en la variable String. –
Naeim
'NSLog (@" ", [[newRequest URL] absoluteString]);' Consulte los documentos de la API para 'NSURLRequest': http://developer.apple.com/mac/library/documentation /cocoa/reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html –
tnx Marc; \t \t NSString * naeim = [[newRequest URL] absoluteString]; este comando era verdadero;). – Naeim