• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.net;
6 
7 /**
8  * HTTP request (GET, PUT or POST).
9  * Note:  All methods must be called on the Executor passed in during creation.
10  */
11 public interface UrlRequest {
12     /**
13      * More setters go here.  They may only be called before start (Maybe
14      * also allow during redirects).  Could optionally instead use arguments
15      * to URLRequestFactory when creating the request.
16      */
17 
18     /**
19      * Sets the HTTP method verb to use for this request.
20      *
21      * <p>The default when this method is not called is "GET" if the request has
22      * no body or "POST" if it does.
23      *
24      * @param method "GET", "HEAD", "DELETE", "POST" or "PUT".
25      */
setHttpMethod(String method)26     public void setHttpMethod(String method);
27 
28     /**
29      * Adds a request header. Must be done before request has started.
30      *
31      * @param header Header name
32      * @param value Header value
33      */
addHeader(String header, String value)34     public void addHeader(String header, String value);
35 
36     /**
37      * Starts the request, all callbacks go to listener.
38      * @param listener
39      */
start(UrlRequestListener listener)40     public void start(UrlRequestListener listener);
41 
42     /**
43      * Can be called at any time.
44      */
cancel()45     public void cancel();
46 
47     /**
48      *
49      * @return True if the request has been cancelled by the embedder.
50      * TBD(mmenke): False in all other cases (Including errors).
51      */
isCanceled()52     public boolean isCanceled();
53 
54     /**
55      * Can be called at any time, but the request may continue behind the
56      * scenes, depending on when it's called.  None of the listener's methods
57      * will be called while paused, until and unless the request is resumed.
58      * (Note:  This allows us to have more than one ByteBuffer in flight,
59      * if we want, as well as allow pausing at any point).
60      *
61      * TBD: May need different pause behavior.
62      */
pause()63     public void pause();
64 
65     /**
66      * Returns True if paused. False if not paused or is cancelled.
67      * @return
68      */
isPaused()69     public boolean isPaused();
70 
71     /**
72      * When resuming, any pending callback to the listener will be called
73      * asynchronously.
74      */
resume()75     public void resume();
76 
77     /**
78      * Note:  There are deliberately no accessors for the results of the request
79      * here.  Having none removes any ambiguity over when they are populated,
80      * particularly in the redirect case.
81      */
82 }
83 
84