Jak mogę przekonwertować NSURLRequest na NSString?NSURLRequest do NSString
Odpowiedz
W zależności od informacji, które chcesz w łańcuchu. Czy chcesz, aby zawierał on wszystkie wartości zmiennych instancji w obiekcie? Jeśli tak, będziesz musiał napisać własną metodę, która to robi. Być może podklasa NSURLRequest
i zastąpić description
. Możesz również użyć refleksji, aby uzyskać wszystkie prywatne znaki iv i wydrukować wszystko od innej klasy.
Lub po prostu użyj debuggera do sprawdzenia wartości.
- (NSString*) urlRequestToString:(NSURLRequest*)urlRequest
{
NSString *requestPath = [[urlRequest URL] absoluteString];
return requestPath;
}
Powoduje to wydrukowanie adresu URL NSURLRequest. To nie jest jedyna rzecz, która jest ważna w NSURLRequest. – rplankenhorn
@rplankenhorn - Oczywiście. Jest także jasne, o co chodziło PO. –
NSURLRequest *urlRequest;
...
NSLog(@"%@", [urlRequest allHTTPHeaderFields]);
NSLog(@"%@",[urlRequest valueForHTTPHeaderField:field]);
W tym przykładzie urlRequest jest NSURLrequest (w poprzednim przykładzie). Drugi wiersz umożliwia wydrukowanie wartości określonego pola "pole", które zostało dodane do NSURLRequest.
od Apple docs
- (NSString *)valueForHTTPHeaderField:(NSString *)field Parameters
polowych
Nazwa pola nagłówka, którego wartość ma być zwrócony. Zgodnie z protokołem HTTP RFC, nazwy pól nagłówka HTTP są rozróżniane wielkości liter: .
Return Value
Wartość związana z polem pole nagłówka lub nil, jeśli istnieje ma odpowiedniego pola nagłówka.
To, dlaczego ta pomoc pomaga odpowiedzieć na pytanie? I jak to wpływa na inne odpowiedzi? Wydaje się, że to bezcelowa odpowiedź i nikomu nie pomaga -1 – Popeye
@Popeye - pokazuje inną metodę metody uzyskania NSURLRequest jako ciąg znaków, dokładnie tak, jak w oryginalnym pytaniu, a nie podaną przez inne odpowiedzi na stronie. Jak na świecie jest to bezcelowe? –
Cóż, jednak nie. Ponieważ nikt z nas nie wie, jaka jest zmienna 'urlRequest', może to być cokolwiek (oczywiste, że byłby to NSURLRequest, ale nowicjusz może o tym nie wiedzieć) i czym jest' field'? Ponieważ 'HTTPHeaderFields' ma sporo pól, może to być absolutnie wszystko. Tak naprawdę to nie pomaga rozwiązać problemu. Musisz zrobić dwie rzeczy, podać cały kod i objaśnić swój kod, dopóki nie pozostanie moje -1. – Popeye
Jeśli używasz Swift, można zaimplementować następujące 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()
}
}
Albo sprawdzić ten sens: https://gist.github.com/tomaskraina/d644af49e4968de85e34
Jeśli wydrukowane, wyświetla coś podobnego do poniższego:
<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"}
}
}
Dzięki, naprawdę pomogło mi w debugowaniu obiektywnego wywołania c, które migałem do szybkiego. – greentor
w iOS 9/Xcode 7 można użyć request.URLString
w Swift (lub w obje ctive-C, faktycznie)
- 1. NSURLRequest - kodowany URL dla NSURLRequest POST Body (cel iPhone-C)
- 2. Prośba o NSURLRequest
- 3. Correlate NSURLRequest z UIWebView
- 4. Jak dołączyć NSString do innego NSString
- 5. Zwracanie ciągu znaków z NSURLRequest
- 6. Problem przy użyciu NSURLRequest do danych POST na serwerze
- 7. Konwersja NSDecimalNumber do NSString
- 8. NSString do NSURL?
- 9. NSString do równania
- 10. Konwersja NSData do NSString!
- 11. Dodawanie wielokropka do NSString
- 12. Skróć NSString do szerokości
- 13. NSString (hex) do bajtów
- 14. NSString do bibliotece NSURL
- 15. Zasady dotyczące pamięci podręcznej NSURLRequest
- 16. Jak dodać cudzysłowy do NSString?
- 17. iPhone SDK NSString do NSDate
- 18. Przesyłanie obiektu NSObject do NSString
- 19. Objective-c: NSString do wyliczenia
- 20. Objective C UIColor do NSString
- 21. Parse Plist (NSString) do NSDictionary
- 22. Dodaj do początku metody NSString
- 23. Nagłówki HTTP w/NSURLRequest in swift
- 24. NSURLRequest: Jak zmienić httpMethod "GET" na "POST"
- 25. Jak uzyskać jedną znak NSString z NSString
- 26. Drukowanie NSString
- 27. Global NSString
- 28. NSString parsowania
- 29. iOS: Dzielenie NSString do FilePath & Nazwa + Extension
- 30. Cel C ==> unichar [] do NSString?
tnx gość ... ale jestem nowy w kakao ... w moim kodzie: NSURLRequest * newRequest = wniosek; \t NSLog (@ "% @", newRequest); // Potrzebuję umieścić " " w zmienna String. –
Naeim
'NSLog (@" ", [[newRequest URL] absoluteString]);' Zobacz dokumentację API dla 'NSURLRequest': http://developer.apple.com/mac/library/documentation /cocoa/reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html –
tnx Marc; \t \t NSString * naeim = [[adres URL nowego żądania] absoluteString]; to polecenie było prawdziwe;). – Naeim