Skip to content

Instantly share code, notes, and snippets.

@V8tr
Forked from shaps80/cURL+Request.swift
Created April 24, 2018 09:06
Show Gist options
  • Save V8tr/0792bb18c267902237a5bd038b2cad8a to your computer and use it in GitHub Desktop.
Save V8tr/0792bb18c267902237a5bd038b2cad8a to your computer and use it in GitHub Desktop.
Generates a cURL command representation of a URLRequest in Swift.
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