Wie kann ich NSURLRequest in NSString konvertieren?NSURLRequest zu NSString
Antwort
Hängt von den gewünschten Informationen in der Zeichenfolge ab. Möchten Sie, dass alle Werte der Instanzvariablen im Objekt enthalten sind? Wenn ja, müssen Sie Ihre eigene Methode schreiben, die das tut. Vielleicht Unterklasse NSURLRequest
und überschreiben description
. Sie können auch Reflektion verwenden, um alle privaten Ivars zu erhalten und alles aus einer anderen Klasse auszudrucken.
Oder verwenden Sie einfach einen Debugger, um die Werte zu überprüfen.
- (NSString*) urlRequestToString:(NSURLRequest*)urlRequest
{
NSString *requestPath = [[urlRequest URL] absoluteString];
return requestPath;
}
Dies druckt nur die URL des NSURLRequest. Das ist nicht das einzige, was bei NSURLRequest wichtig ist. – rplankenhorn
@rplankenhorn - Klar. Es ist auch klar, was der OP verfolgte. –
NSURLRequest *urlRequest;
...
NSLog(@"%@", [urlRequest allHTTPHeaderFields]);
NSLog(@"%@",[urlRequest valueForHTTPHeaderField:field]);
In diesem Beispiel ist ein urlRequest NSURLRequest (aus dem vorhergehenden Beispiel). In der zweiten Zeile können Sie den Wert eines bestimmten Feldfelds drucken, das zum NSURLRequest hinzugefügt wurde.
von Apple docs
- (NSString *)valueForHTTPHeaderField:(NSString *)field Parameters
Feld
Der Name des Header-Feld, dessen Wert zurückgegeben werden. In Übereinstimmung mit dem HTTP-RFC sind HTTP-Header-Feldnamen case-insensitive.
Rückgabewert
Der Wert mit dem Header-Feld Feld zugeordnet ist, oder null, wenn es kein entsprechendes Header-Feld ist.
Was hilft die Frage? Und wie fügt das zu den anderen Antworten hinzu? Scheint wie eine sinnlose Antwort und hilft niemandem -1 – Popeye
@Popeye - es zeigt eine andere Methode Methode, die NSURLRequest als eine Zeichenfolge, genau nach der ursprünglichen Frage und nicht eine von anderen Antworten auf der Seite zur Verfügung gestellt. Wie in der Welt ist das sinnlos? –
Nun, es tut es nicht. Da keiner von uns weiß, was die Variable 'urlRequest' ist, könnte es alles sein (Offensichtlich wäre es NSURLRequest, aber ein Neuling weiß das vielleicht nicht) und was ist' field'? Da 'HTTPHeaderFields' ziemlich viele Felder enthalten, könnte dies eigentlich alles sein. Das hilft also nicht, das Problem zu lösen. Sie müssen zwei Dinge tun, um den gesamten Code und erklären Sie Ihren Code bis dann meine -1 bleibt. – Popeye
Wenn Sie swift verwenden, können Sie die folgende extension
implementieren:
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()
}
}
Oder diesen Kern check out: https://gist.github.com/tomaskraina/d644af49e4968de85e34
Wenn ausgedruckt, zeigt es etwas Ähnliches wie die folgenden:
<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"}
}
}
Danke, hat mir wirklich geholfen, einen objektiven c-Aufruf zu debuggen, den ich zu swift migrierte. – greentor
in iOS 9/Xcode 7 können Sie request.URLString
in Swift (oder in Zie verwenden ctive-C, eigentlich)
- 1. NSURLRequest - codiere URL für NSURLRequest POST Body (iPhone Ziel-C)
- 2. HTTP-Header zu NSURLRequest hinzufügen
- 3. NSURLRequest [get/post] urlQuery null
- 4. NSString zu CLLocationDegrees zu NSString ist Wert zu verändern
- 5. Semantische Frage zu NSURLRequest und HTTP-Cookies
- 6. STTwitter CFNetwork internen Fehler NSURLRequest
- 7. Correlate NSURLRequest mit UIWebView
- 8. NSURLRequest Cache Policy
- 9. Locken-Befehl NSURLRequest Swift
- 10. NSURLRequest HTTPS Probleme - iphone
- 11. NSURLConnection/NSURLRequest gzip Unterstützung
- 12. Speichern NSString zu NSArray
- 13. ID-Typ zu NSString
- 14. NSString zu NSUInteger
- 15. NSString zu NSDate
- 16. NSUUID zu NSString
- 17. NSData zu NSString Codierung
- 18. Convert NSString zu NSDictionary
- 19. NSString zu Gleichung
- 20. NSString zu HTML
- 21. konvertieren NSTaggedPointerString zu NSString
- 22. NSString zu UInt64
- 23. NSString zu wchar_t *?
- 24. NSString zu NSNumber
- 25. NSData zu NSString-Konvertierungsproblem!
- 26. Converting NSDecimalNumber zu NSString
- 27. NSArray zu NSMutableArray zu NSString
- 28. Problem mit NSURLRequest zu POST-Daten zum Server
- 29. Hochladen einer Datei mit NSUrlRequest Ergebnisse in Null Bytes Dateigröße
- 30. NSURLConnection, NSURLRequest und Remote-Caching
tnx kumpel ... aber ich bin neu in kakao ... in meinem code: NSURLRequest * newRequest = anforderung; \t \t NSLog (@ "% @", newRequest); // Ich brauche " " in " die String-Variable. –
Naeim
'NSLog (@" ", [[URL newRequest] absoluteString]);' Werfen Sie einen Blick auf die API-Dokumentation für 'NSURLRequest': http://developer.apple.com/mac/library/documentation /cocoa/reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html –
tnx Marc; \t \t NSString * naem = [[URL newRequest] absoluteString]; Dieser Befehl war wahr;). – Naeim