1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
(* Js_of_ocaml library
* http://www.ocsigen.org/js_of_ocaml/
* Copyright (C) 2010 Jérôme Vouillon
* Laboratoire PPS - CNRS Université Paris Diderot
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, with linking exception;
* either version 2.1 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*)
(** XmlHttpRequest object. *)
open Js_of_ocaml
open Js
open XmlHttpRequest
type 'response generic_http_frame =
{ url : string
; code : int
; headers : string -> string option
; content : 'response
; content_xml : unit -> Dom.element Dom.document t option
}
(** The type for XHR results. The code field is the http status code of the
answer. The headers field is a function associating values to any header
name. *)
type http_frame = string generic_http_frame
exception Wrong_headers of (int * (string -> string option))
(** The exception raise by perform functions when the check_headers
parameter returned false. The parameter of the exception is a
function is like the [headers] function of [http_frame] *)
val perform_raw :
?headers:(string * string) list
-> ?content_type:string
-> ?get_args:(string * string) list
-> ?check_headers:
( (* [] *)
int
-> (string -> string option)
-> bool)
-> ?progress:(int -> int -> unit)
-> ?upload_progress:(int -> int -> unit)
-> ?contents:
[< `POST_form of (string * Form.form_elt) list
| `Form_contents of Form.form_contents
| `String of string
| `Blob of #File.blob Js.t
]
-> ?override_mime_type:string
-> ?override_method:[< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ]
-> ?with_credentials:bool
-> response_type:'a response
-> string
-> 'a generic_http_frame Lwt.t
(** [perform_raw] is the same as {!perform_raw_url} except that an additional
response_type argument can be given to set the XMLHttpRequest
responseType, and hence return different types of data for GET
requests. *)
val perform_raw_url :
?headers:(string * string) list
-> ?content_type:string
-> ?get_args:(string * string) list
-> ?check_headers:
( (* [] *)
int
-> (string -> string option)
-> bool)
-> ?progress:(int -> int -> unit)
-> ?upload_progress:(int -> int -> unit)
-> ?contents:
[< `POST_form of (string * Form.form_elt) list
| `Form_contents of Form.form_contents
| `String of string
| `Blob of #File.blob Js.t
]
-> ?override_mime_type:string
-> ?override_method:[< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ]
-> ?with_credentials:bool
-> string
-> http_frame Lwt.t
(** [perform_raw_url] makes an asynchronous request to the specified [url] with
specified options. The result is a cancelable thread returning
an HTTP frame. By default, if [post_args] and [form_arg] are [None], a GET
request is used. If [post_args] or [form_arg] is [Some _] (even [Some []]) then a POST
request is made. But if [override_method] is set, the request method is forced,
no matter the [post_args] or [form_arg] value. For example, with [override_method]
set to [`PUT] and [form_arg] set to [Some _] a PUT request including the form data
will be made. The [check_headers] argument is run as soon as the answer
code and headers are available. If it returns false, the request is canceled
and the functions raise the [Wrong_headers] exception *)
val perform :
?headers:(string * string) list
-> ?content_type:string
-> ?get_args:(string * string) list
-> ?check_headers:
( (* [] *)
int
-> (string -> string option)
-> bool)
-> ?progress:(int -> int -> unit)
-> ?upload_progress:(int -> int -> unit)
-> ?contents:
[< `POST_form of (string * Form.form_elt) list
| `Form_contents of Form.form_contents
| `String of string
| `Blob of #File.blob Js.t
]
-> ?override_mime_type:string
-> ?override_method:[< `GET | `POST | `HEAD | `PUT | `DELETE | `OPTIONS | `PATCH ]
-> ?with_credentials:bool
-> Url.url
-> http_frame Lwt.t
(** [perform] is the same as {!perform_raw_url} except that the Url argument has type
{!Js_of_ocaml.Url.url}. *)
val get : string -> http_frame Lwt.t
(** [get url] makes an asynchronous request to the specified [url] *)
|