57 lines
1.1 KiB
Swift
57 lines
1.1 KiB
Swift
//
|
|
// Response.swift
|
|
// Cyberlock
|
|
//
|
|
// Created by Jura on 8/21/19.
|
|
// Copyright © 2019 Omicronmedia. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct Response {
|
|
|
|
public let statusCode: Int?
|
|
|
|
public let data: Data
|
|
|
|
public let response: URLResponse?
|
|
|
|
public var request: URLRequest
|
|
|
|
#if DEBUG
|
|
public var curlString: NSString {
|
|
return self.request.curlString
|
|
}
|
|
#endif
|
|
|
|
}
|
|
|
|
// MARK: - cURL
|
|
internal extension URLRequest {
|
|
|
|
var curlString: NSString {
|
|
var result = "curl -k "
|
|
|
|
if let method = httpMethod {
|
|
result += "-X \(method) \\\n"
|
|
}
|
|
|
|
if let headers = allHTTPHeaderFields {
|
|
for (header, value) in headers {
|
|
result += "-H \"\(header): \(value)\" \\\n"
|
|
}
|
|
}
|
|
|
|
if let body = httpBody, !body.isEmpty, let string = String(data: body, encoding: .utf8), !string.isEmpty {
|
|
result += "-d '\(string)' \\\n"
|
|
}
|
|
|
|
if let url = url {
|
|
result += "'\(url.absoluteString)'"
|
|
}
|
|
|
|
return result as NSString
|
|
}
|
|
|
|
}
|