Skip to content

Instantly share code, notes, and snippets.

@satishbabariya
Created July 2, 2018 12:04
Show Gist options
  • Save satishbabariya/af137e8e9fe591cd1d153a410a45c340 to your computer and use it in GitHub Desktop.
Save satishbabariya/af137e8e9fe591cd1d153a410a45c340 to your computer and use it in GitHub Desktop.
URLRequest To cURL
extension URLRequest {
/**
Returns a cURL command representation of this URL request.
*/
public var curlString: String {
guard let url = url else { return "" }
var baseCommand = "curl \(url.absoluteString)"
if httpMethod == "HEAD" {
baseCommand += " --head"
}
var command = [baseCommand]
if let method = httpMethod, method != "GET" && method != "HEAD" {
command.append("-X \(method)")
}
if let headers = allHTTPHeaderFields {
for (key, value) in headers where key != "Cookie" {
command.append("-H '\(key): \(value)'")
}
}
if let data = httpBody, let body = String(data: data, encoding: .utf8) {
command.append("-d '\(body)'")
}
return command.joined(separator: " \\\n\t")
}
init?(curlString: String) {
return nil
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment