NSURLRequest を NSString に変換するにはどうすればよいですか?
36674 次
5 に答える
47
- (NSString*) urlRequestToString:(NSURLRequest*)urlRequest
{
NSString *requestPath = [[urlRequest URL] absoluteString];
return requestPath;
}
于 2011-08-04T08:02:33.347 に答える
9
文字列に必要な情報によって異なります。オブジェクト内のインスタンス変数のすべての値を含めますか? その場合は、それを行う独自のメソッドを作成する必要があります。おそらくサブクラス化NSURLRequest
してオーバーライドしますdescription
。リフレクションを使用して、すべてのプライベート ivar を取得し、別のクラスからすべてを出力することもできます。
または、デバッガーを使用して値を調べます。
于 2010-03-06T22:20:27.380 に答える
3
Swift を使用している場合は、次を実装できます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()
}
}
または、この要点を確認してください: https://gist.github.com/tomaskraina/d644af49e4968de85e34
印刷すると、次のようなものが表示されます。
<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"}
}
}
于 2015-04-21T13:00:59.583 に答える
1
request.URLString
iOS 9 / Xcode 7 では、Swift (または実際には Objective-C) で使用できます。
于 2016-03-02T00:28:28.697 に答える