Skip to content

Commit

Permalink
Merge pull request #29 from Trendyol/fix/RecalculateContent-LengthHeader
Browse files Browse the repository at this point in the history
fix/RecalculateContent-LengthHeader
  • Loading branch information
yusufozgul authored Jul 11, 2024
2 parents 5911ce9 + e25e31f commit c5d11a5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import Foundation
import FoundationNetworking
#endif

extension URLRequest {
public func cURL(pretty: Bool = false) -> String {
public extension URLRequest {
func cURL(pretty: Bool = false) -> String {
let newLine = pretty ? "\\\n" : ""
let method = (pretty ? "--request " : "-X ") + "\(self.httpMethod ?? "GET") \(newLine)"
let url: String = (pretty ? "--url " : "") + "\'\(self.url?.absoluteString ?? "")\' \(newLine)"
Expand All @@ -34,4 +34,14 @@ extension URLRequest {

return cURL
}

func recalculateContentLength() -> URLRequest {
var request = self

if !request.value(forHTTPHeaderField: "Content-Length").isNilOrEmpty {
request.setValue(request.httpBody?.count.description, forHTTPHeaderField: "Content-Length")
}

return request
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,9 @@ public final class MockingStarCore {
let liveRequest: URLRequest

if let mockDomain {
liveRequest = try await updateProxyRequestWithPlugin(request: request, mockDomain: mockDomain)
liveRequest = try await updateProxyRequestWithPlugin(request: request, mockDomain: mockDomain).recalculateContentLength()
} else {
liveRequest = request
liveRequest = request.recalculateContentLength()
}

let (data, response) = try await URLSession.shared.data(for: liveRequest)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,11 @@ final class MockReloadViewModel {
func reloadMock() async {
isMockReloadingProgress = true

let request = (showUpdatedRequest ? updatedRequest() : mockModel.asURLRequest).recalculateContentLength()
let result: (Data, URLResponse)

do {
result = try await urlSession.data(for: showUpdatedRequest ? updatedRequest() : mockModel.asURLRequest)
result = try await urlSession.data(for: request)
} catch {
print("Error: \(error)")
isMockReloadingProgress = false
Expand Down

0 comments on commit c5d11a5

Please sign in to comment.