该函数创建一个 HTTP 请求并发送它。
HTTP 请求可用于许多事情,例如,如果您使用 RESTful API,则可以通过 HTTP 标头进行身份验证。该函数需要发出请求的服务器的完整 IP 地址以及发出请求的类型 (作为字符串,请参阅下面的注释):"GET","HEAD","POST"、"PUT"、"DELETE"、"TRACE"、"OPTIONS" 或 "CONNECT"。您还需要提供键 / 值对的 DS 映射 ( 作为字符串,其中键是标头字段,值是标头所需的数据),最后一个参数是您可以添加到请求中的可选数据字符串,如果不需要,则可以是 0 或空字符串 ""。请注意,您还可以发送缓冲区 (有关更多详细信息,请参阅有关 缓冲区 的部分),在这种情况下,最后一个参数将是要发送的缓冲区的索引。
这个函数返回一个 异步请求ID,可以用来标识它的回调,如下所述。
此事件将生成由任何异步HTTP事件拾取的"回调",在这种情况下,它将生成此事件独有的、存储在特殊变量 async_load 中的 DS 映射。此DS映射具有与请求函数相关的以下两个键:
http_request(url, method, header_map, body);
参数 | 类型 | 描述 |
---|---|---|
url | String | 您希望从中获取信息的服务器的 Web 地址 |
method | String | 请求方法(通常是 "POST" 或 "GET" ,但是支持所有方法) |
header_map | DS Map | 具有所需标头字段的 DS 映射 |
body | Real, String, or Buffer | 在头文件后面传输的数据(可以是二进制缓冲区句柄) |
var _headers = ds_map_create();
ds_map_add(_headers, "Authorization", "Basic eW95b19hZG1pbjpjNG5lZmllbGQ=");
ds_map_add(_headers, "Content-Type", "application/x-www-form-urlencoded");
ds_map_add(_headers, "Cookie", "request_method=GET; _InAppPurchases_session=69bb6ef6eec2b");
var _data="utf8=%E2%9C%93&authenticity_token=kPmS14DcYcuKgMFZUsN3XFfj3mhs%3D&product%5Bname%5D=CatchTheHaggis&product%5Bproduct_id%5D=http_test&commit=Create+Product";
request = http_request("http://225.0.0.97:3000/products", "POST", _headers, _data);
ds_map_destroy(_headers);
上面的代码创建一个 DS 映射,其中包含该函数的相关 HTTP 标头,然后创建一个数据字符串以供使用,因为这是一个 POST 请求。最后调用该函数,其 ID 值存储在实例变量 request 中,用于检查 HTTP 异步事件。