// Copyright 2015 The Chromium 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 = DEFAULT; // The response body mode. ResponseBodyMode response_body_mode = STREAM; };