 }
 
 public enum HTTPMethod: String {
-    case GET
-    case HEAD
-    case POST
-    case PUT
-    case DELETE
+    case get = "GET"
+    case head = "HEAD"
+    case post = "POST"
+    case put = "PUT"
+    case delete = "DELETE"
 }
 
 public enum HTTPResultDataType {

    @discardableResult
    public func post(_ request: URLRequest, from data: Data, downloadTo fileUrl: URL? = nil, uploadProgress: UploadProgress? = nil, downloadProgress: DownloadProgress? = nil, completion: @escaping ResultCompletion) -> URLSessionTask {
        var postRequest = request
        postRequest.httpMethod = HTTPMethod.POST.rawValue

        return sendUploadTask(request: postRequest, from: data, downloadTo: fileUrl, uploadProgress: uploadProgress, downloadProgress: downloadProgress, completion: completion)
    }

    @discardableResult
    public func head(_ request: URLRequest, completion: @escaping ResultCompletion) -> URLSessionTask {
        var headRequest = request
        headRequest.httpMethod = HTTPMethod.head.rawValue

        return sendDownloadTask(request: headRequest, downloadTo: nil, downloadProgress: nil, completion: completion)
    }
