blob: 999675e553f762e1fd0983c89ba1646b154fbb9e [file] [log] [blame]
// 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;
};