aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objective-c/examples/SwiftSample/ViewController.swift
diff options
context:
space:
mode:
authorGravatar Jorge Canizales <jcanizales@google.com>2015-09-03 10:10:34 -0700
committerGravatar Jorge Canizales <jcanizales@google.com>2015-09-03 15:22:13 -0700
commitff6466b7269174dbd792df7252a99e2791f3b0ed (patch)
tree38cf04521b22d9e8768302ea73c80c4d9f85566f /src/objective-c/examples/SwiftSample/ViewController.swift
parent4682f8f9941c55af2d3d64d04971f09d04d35759 (diff)
Add header manipulation examples
With both raw and codegen’d library
Diffstat (limited to 'src/objective-c/examples/SwiftSample/ViewController.swift')
-rw-r--r--src/objective-c/examples/SwiftSample/ViewController.swift42
1 files changed, 32 insertions, 10 deletions
diff --git a/src/objective-c/examples/SwiftSample/ViewController.swift b/src/objective-c/examples/SwiftSample/ViewController.swift
index e4e7aeae49..76dad9e132 100644
--- a/src/objective-c/examples/SwiftSample/ViewController.swift
+++ b/src/objective-c/examples/SwiftSample/ViewController.swift
@@ -45,17 +45,37 @@ class ViewController: UIViewController {
request.fillUsername = true
request.fillOauthScope = true
+
// Example gRPC call using a generated proto client library:
let service = RMTTestService(host: RemoteHost)
- service.unaryCallWithRequest(request) { (response: RMTSimpleResponse?, error: NSError?) in
+ service.unaryCallWithRequest(request) { response, error in
+ if let response = response {
+ NSLog("1. Finished successfully with response:\n\(response)")
+ } else {
+ NSLog("1. Finished with error: \(error!)")
+ }
+ }
+
+
+ // Same but manipulating headers:
+
+ var RPC : ProtoRPC! // Needed to convince Swift to capture by reference (__block)
+ RPC = service.RPCToUnaryCallWithRequest(request) { response, error in
if let response = response {
- NSLog("Finished successfully with response:\n\(response)")
+ NSLog("2. Finished successfully with response:\n\(response)")
} else {
- NSLog("Finished with error: \(error!)")
+ NSLog("2. Finished with error: \(error!)")
}
+ NSLog("2. Response headers: \(RPC.responseHeaders)")
+ NSLog("2. Response trailers: \(RPC.responseTrailers)")
}
+ RPC.requestHeaders["My-Header"] = "My value"
+
+ RPC.start()
+
+
// Same example call using the generic gRPC client library:
let method = ProtoMethod(package: "grpc.testing", service: "TestService", method: "UnaryCall")
@@ -64,14 +84,16 @@ class ViewController: UIViewController {
let call = GRPCCall(host: RemoteHost, path: method.HTTPPath, requestsWriter: requestsWriter)
- let responsesWriteable = GRXWriteable { (value: AnyObject?, error: NSError?) in
- if let value = value as? NSData {
- NSLog("Received response:\n\(RMTSimpleResponse(data: value, error: nil))")
+ call.requestHeaders["My-Header"] = "My value"
+
+ call.startWithWriteable(GRXWriteable { response, error in
+ if let response = response as? NSData {
+ NSLog("3. Received response:\n\(RMTSimpleResponse(data: response, error: nil))")
} else {
- NSLog("Finished with error: \(error!)")
+ NSLog("3. Finished with error: \(error!)")
}
- }
-
- call.startWithWriteable(responsesWriteable)
+ NSLog("3. Response headers: \(call.responseHeaders)")
+ NSLog("3. Response trailers: \(call.responseTrailers)")
+ })
}
}