in tchannel-example/src/main/java/com/uber/tchannel/basic/SyncRequest.java [39:79]
public static void main(String[] args) throws Exception {
TChannel server = createServer();
TChannel client = createClient();
SubChannel subChannel = client.makeSubChannel("server");
final long start = System.currentTimeMillis();
// send three requests
for (int i = 0; i < 3; i++) {
RawRequest request = new RawRequest.Builder("server", "pong")
.setHeader("Marco")
.setBody("Ping!")
.build();
TFuture<RawResponse> future = subChannel.send(request,
InetAddress.getByName(null),
8888
);
// Use the try-with-resources Statement to release resources when done
try (RawResponse response = future.get()) {
if (!response.isError()) {
System.out.println(String.format("Response received: response code: %s, header: %s, body: %s",
response.getResponseCode(),
response.getHeader(),
response.getBody()));
} else {
System.out.println(String.format("Got error response: %s",
response.toString()));
}
}
System.out.println();
}
System.out.println(String.format("%nTime cost: %dms", System.currentTimeMillis() - start));
// close channels asynchronously
server.shutdown(false);
client.shutdown(false);
}