From fe94cc1b2d498105e7931c6099fa002806ef9a8d Mon Sep 17 00:00:00 2001 From: Ludovic Dewailly Date: Wed, 17 Jul 2019 09:32:28 +0100 Subject: [PATCH] Addressing README.md code snippets as per issue#69 --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7dcecc35a..53a74445e 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ httpClient.get(url: "https://swift.org").whenComplete { result in case .failure(let error): // process error case .success(let response): - if let response.status == .ok { + if response.status == .ok { // handle response } else { // handle remote error @@ -69,7 +69,7 @@ defer { try? httpClient.syncShutdown() } -var request = try HTTPClient.HTTPRequest(url: "https://swift.org", method: .POST) +var request = try HTTPClient.Request(url: "https://swift.org", method: .POST) request.headers.add(name: "User-Agent", value: "Swift HTTPClient") request.body = .string("some-body") @@ -78,7 +78,7 @@ httpClient.execute(request: request).whenComplete { result in case .failure(let error): // process error case .success(let response): - if let response.status == .ok { + if response.status == .ok { // handle response } else { // handle remote error @@ -110,6 +110,9 @@ httpClient.execute(request: request, timeout: timeout) ### Streaming When dealing with larger amount of data, it's critical to stream the response body instead of aggregating in-memory. Handling a response stream is done using a delegate protocol. The following example demonstrates how to count the number of bytes in a streaming response body: ```swift +import NIO +import NIOHTTP1 + class CountingDelegate: HTTPClientResponseDelegate { typealias Response = Int @@ -154,7 +157,7 @@ class CountingDelegate: HTTPClientResponseDelegate { let request = try HTTPClient.Request(url: "https://swift.org") let delegate = CountingDelegate() -try httpClient.execute(request: request, delegate: delegate).future.whenSuccess { count in +httpClient.execute(request: request, delegate: delegate).futureResult.whenSuccess { count in print(count) } ```