| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // A binary wrapper for QuicClient. | 5 // A binary wrapper for QuicClient. |
| 6 // Connects to a host using QUIC, sends a request to the provided URL, and | 6 // Connects to a host using QUIC, sends a request to the provided URL, and |
| 7 // displays the response. | 7 // displays the response. |
| 8 // | 8 // |
| 9 // Some usage examples: | 9 // Some usage examples: |
| 10 // | 10 // |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 base::TrimWhitespaceASCII(kv[1], base::TRIM_ALL, &value); | 309 base::TrimWhitespaceASCII(kv[1], base::TRIM_ALL, &value); |
| 310 request.extra_headers.SetHeader(key, value); | 310 request.extra_headers.SetHeader(key, value); |
| 311 } | 311 } |
| 312 | 312 |
| 313 // Make sure to store the response, for later output. | 313 // Make sure to store the response, for later output. |
| 314 client.set_store_response(true); | 314 client.set_store_response(true); |
| 315 | 315 |
| 316 // Send the request. | 316 // Send the request. |
| 317 net::SpdyHeaderBlock header_block; | 317 net::SpdyHeaderBlock header_block; |
| 318 net::CreateSpdyHeadersFromHttpRequest(request, request.extra_headers, | 318 net::CreateSpdyHeadersFromHttpRequest(request, request.extra_headers, |
| 319 net::HTTP2, /*direct=*/true, | 319 /*direct=*/true, &header_block); |
| 320 &header_block); | |
| 321 client.SendRequestAndWaitForResponse(request, body, /*fin=*/true); | 320 client.SendRequestAndWaitForResponse(request, body, /*fin=*/true); |
| 322 | 321 |
| 323 // Print request and response details. | 322 // Print request and response details. |
| 324 if (!FLAGS_quiet) { | 323 if (!FLAGS_quiet) { |
| 325 cout << "Request:" << endl; | 324 cout << "Request:" << endl; |
| 326 cout << "headers:" << header_block.DebugString(); | 325 cout << "headers:" << header_block.DebugString(); |
| 327 if (!FLAGS_body_hex.empty()) { | 326 if (!FLAGS_body_hex.empty()) { |
| 328 // Print the user provided hex, rather than binary body. | 327 // Print the user provided hex, rather than binary body. |
| 329 cout << "body:\n" | 328 cout << "body:\n" |
| 330 << net::QuicUtils::HexDump(net::QuicUtils::HexDecode(FLAGS_body_hex)) | 329 << net::QuicUtils::HexDump(net::QuicUtils::HexDecode(FLAGS_body_hex)) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 354 return 0; | 353 return 0; |
| 355 } else { | 354 } else { |
| 356 cout << "Request failed (redirect " << response_code << ")." << endl; | 355 cout << "Request failed (redirect " << response_code << ")." << endl; |
| 357 return 1; | 356 return 1; |
| 358 } | 357 } |
| 359 } else { | 358 } else { |
| 360 cerr << "Request failed (" << response_code << ")." << endl; | 359 cerr << "Request failed (" << response_code << ")." << endl; |
| 361 return 1; | 360 return 1; |
| 362 } | 361 } |
| 363 } | 362 } |
| OLD | NEW |