| // Copyright 2015 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.net.oldhttp; |
| |
| /// Specify the cache behavior of the request. |
| enum CacheMode { |
| /// Default behavior. |
| DEFAULT = 0; |
| |
| /// The HTTP request will bypass the local cache and will have a |
| /// 'Cache-Control: nocache' header added in that causes any proxy servers |
| /// to also not satisfy the request from their cache. This has the effect |
| /// of forcing a full end-to-end fetch. |
| BYPASS_CACHE = 1; |
| |
| /// The HTTP request will fail if it cannot serve the requested resource |
| /// from the cache (or some equivalent local store). |
| ONLY_FROM_CACHE = 2; |
| }; |
| |
| /// Specify the mechanism used to return the response body. |
| enum ResponseBodyMode { |
| /// The complete response body should be returned in the `buffer` field of |
| /// the response body. |
| BUFFER = 0; |
| /// The response body should be streamed through the `stream` field of the |
| /// response body. |
| STREAM = 1; |
| /// The response body may be returned as a buffer or stream. |
| BUFFER_OR_STREAM = 2; |
| }; |
| |
| struct URLRequest { |
| /// The URL to load. |
| string url; |
| |
| /// The HTTP method if applicable. |
| string method = "GET"; |
| |
| /// Additional HTTP request headers. |
| vector<HttpHeader>? headers; |
| |
| /// The payload for the request body. For HTTP requests, the method must be set |
| /// to "POST" or "PUT". If a buffer is used for the body, a Content-Length |
| /// header will automatically be added. |
| URLBody? body; |
| |
| /// The buffer size of the socket returned in URLResponse's `body` member. |
| /// A value of 0 indicates that the default buffer size should be used. This |
| /// value is just a suggestion. The URLLoader may choose to ignore this value. |
| uint32 response_body_buffer_size = 0; |
| |
| /// If set to true, then redirects will be automatically followed. Otherwise, |
| /// when a redirect is encounterd, FollowRedirect must be called to proceed. |
| bool auto_follow_redirects = false; |
| |
| /// The cache behavior for the request. |
| CacheMode cache_mode = CacheMode.DEFAULT; |
| |
| /// The response body mode. |
| ResponseBodyMode response_body_mode = ResponseBodyMode.STREAM; |
| }; |