Skip to content

Commit 7f7f2bc

Browse files
committed
Ensure curl headers are not overwritten but merged in special case.
1 parent 188a8c2 commit 7f7f2bc

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
@@ -548,7 +548,16 @@ fileprivate extension URLSessionTask {
548548

549549
// HTTP Options:
550550
easyHandle.set(followLocation: false)
551-
easyHandle.set(customHeaders: curlHeaders(for: request))
551+
552+
let customHeaders: [String]
553+
let headersForRequest = curlHeaders(for: request)
554+
if ((request.httpMethod == "POST") && (request.value(forHTTPHeaderField: "Content-Type") == nil)) {
555+
customHeaders = headersForRequest + ["Content-Type:application/x-www-form-urlencoded"]
556+
} else {
557+
customHeaders = headersForRequest
558+
}
559+
560+
easyHandle.set(customHeaders: customHeaders)
552561

553562
//Options unavailable on Ubuntu 14.04 (libcurl 7.36)
554563
//TODO: Introduce something like an #if
@@ -564,8 +573,6 @@ fileprivate extension URLSessionTask {
564573
easyHandle.set(requestMethod: request.httpMethod ?? "GET")
565574
if request.httpMethod == "HEAD" {
566575
easyHandle.set(noBody: true)
567-
} else if ((request.httpMethod == "POST") && (request.value(forHTTPHeaderField: "Content-Type") == nil)) {
568-
easyHandle.set(customHeaders: ["Content-Type:application/x-www-form-urlencoded"])
569576
}
570577
}
571578
}

0 commit comments

Comments
 (0)