Skip to content

Commit 8436669

Browse files
committed
Ensure curl headers are not overwritten but merged in special case.
1 parent e3c5d7a commit 8436669

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Foundation/NSURLSession/NSURLSessionTask.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,16 @@ fileprivate extension URLSessionTask {
554554

555555
// HTTP Options:
556556
easyHandle.set(followLocation: false)
557-
easyHandle.set(customHeaders: curlHeaders(for: request))
557+
558+
let customHeaders: [String]
559+
let headersForRequest = curlHeaders(for: request)
560+
if ((request.httpMethod == "POST") && (request.value(forHTTPHeaderField: "Content-Type") == nil)) {
561+
customHeaders = headersForRequest + ["Content-Type:application/x-www-form-urlencoded"]
562+
} else {
563+
customHeaders = headersForRequest
564+
}
565+
566+
easyHandle.set(customHeaders: customHeaders)
558567

559568
//TODO: The CURLOPT_PIPEDWAIT option is unavailable on Ubuntu 14.04 (libcurl 7.36)
560569
//TODO: Introduce something like an #if, if we want to set them here
@@ -568,8 +577,6 @@ fileprivate extension URLSessionTask {
568577
easyHandle.set(requestMethod: request.httpMethod ?? "GET")
569578
if request.httpMethod == "HEAD" {
570579
easyHandle.set(noBody: true)
571-
} else if ((request.httpMethod == "POST") && (request.value(forHTTPHeaderField: "Content-Type") == nil)) {
572-
easyHandle.set(customHeaders: ["Content-Type:application/x-www-form-urlencoded"])
573580
}
574581
}
575582
}

0 commit comments

Comments
 (0)