ObjectHttpRequest
HttpRequest is a class used to handle HTTP requests. It allows you to create HTTP requests and interact with the server. You can use it to send GET, POST and other types of HTTP requests to the web server
Suppose we have a query parameter with the key name, and we return different processing results based on this parameter: if the parameter is empty, return "Hello world!"; if the parameter is "fibjs", return "Hello fibjs!"; otherwise return "Hello some body!".
The code is implemented as follows:
1
2
3
4
5
6
7
8
9
10const http = require('http');
var svr = new http.Server(8080, (req) => {
var name = req.query.get('name');
var msg = name ? `Hello ${name}!` : 'Hello world!';
req.response.write(msg);
});
svr.start();
Here we use req.query
this Collection type, which represents the query parameters in the HTTP request URL.
We access http://127.0.0.1:8080/?name=fibjs through the browser to the service program and get the server response content Hello fibjs!
.
inheritance relationship
Constructor
HttpRequest
HttpRequest constructor, creates a new HttpRequest object
1new HttpRequest();
constant
TEXT
Specify message type 1, which represents a text type
1const HttpRequest.TEXT = 1;
BINARY
Specify message type 2, representing a binary type
1const HttpRequest.BINARY = 2;
member properties
response
HttpResponse, Get the response message object
1readonly HttpResponse HttpRequest.response;
method
String, query and set request methods
1String HttpRequest.method;
address
String, query and set request address
1String HttpRequest.address;
queryString
String, query and set request query string
1String HttpRequest.queryString;
cookies
HttpCollection, get the container containing message cookies
1readonly HttpCollection HttpRequest.cookies;
form
HttpCollection, get the container containing the message form
1readonly HttpCollection HttpRequest.form;
query
HttpCollection, get the container containing the message query
1readonly HttpCollection HttpRequest.query;
protocol
String, protocol version information, allowed format is: HTTP/#.#
1String HttpRequest.protocol;
headers
HttpCollection, included in the messagehttpContainer for message headers, read-only property
1readonly HttpCollection HttpRequest.headers;
keepAlive
Boolean, query and set whether to maintain the connection
1Boolean HttpRequest.keepAlive;
upgrade
Boolean, query and set whether it is an upgrade protocol
1Boolean HttpRequest.upgrade;
maxHeadersCount
Integer, query and set the maximum number of request headers, the default is 128
1Integer HttpRequest.maxHeadersCount;
maxHeaderSize
Integer, query and set the maximum request header length, the default is 8192
1Integer HttpRequest.maxHeaderSize;
maxBodySize
Integer, query and set the maximum body size in MB, the default is 64
1Integer HttpRequest.maxBodySize;
socket
Stream, Query the source socket of the current object
1readonly Stream HttpRequest.socket;
value
String, the basic content of the message
1String HttpRequest.value;
params
NArray, the basic parameters of the message
1readonly NArray HttpRequest.params;
type
Integer, message type
1Integer HttpRequest.type;
data
Value, query the data of the message. This attribute will return different data according to the content-type. When it is text, the text will be returned.jsonreturn whenjson, otherwise it returns binary
1readonly Value HttpRequest.data;
body
SeekableStream, a stream object containing the data portion of the message
1SeekableStream HttpRequest.body;
length
Long, the length of the message data part
1readonly Long HttpRequest.length;
stream
Stream, the stream object when querying the message readFrom
1readonly Stream HttpRequest.stream;
lastError
String, query and set the last error of message processing
1String HttpRequest.lastError;
member function
hasHeader
Check whether there is a message header with the specified key value
1Boolean HttpRequest.hasHeader(String name);
Call parameters:
- name: String, specifies the key value to be checked
Return results:
- Boolean, returns whether the key value exists
firstHeader
Query the first message header of the specified key value
1String HttpRequest.firstHeader(String name);
Call parameters:
- name: String, specify the key value to be queried
Return results:
- String, returns the value corresponding to the key value, if it does not exist, returns undefined
allHeader
Query all message headers of the specified key value
1NObject HttpRequest.allHeader(String name = "");
Call parameters:
- name: String, specify the key value to be queried, pass an empty string to return the results of all key values
Return results:
- NObject, returns an array of all values corresponding to the key value. If the data does not exist, returns null.
addHeader
Add a message header, add data and do not modify the message header of the existing key value
1HttpRequest.addHeader(Object map);
Call parameters:
- map: Object, specifies the key-value data dictionary to be added
Adds a set of headers with the specified name. Adding data does not modify the headers of existing key values.
1
2HttpRequest.addHeader(String name,
Array values);
Call parameters:
- name: String, specifies the key value to be added
- values: Array, specifies a set of data to be added
Add a message header, add data and do not modify the message header of the existing key value
1
2HttpRequest.addHeader(String name,
String value);
Call parameters:
- name: String, specifies the key value to be added
- value: String, specify the data to be added
setHeader
Set a message header. Setting the data will modify the first value corresponding to the key value and clear the remaining message headers with the same key value.
1HttpRequest.setHeader(Object map);
Call parameters:
- map: Object, specifies the key-value data dictionary to be set
Set a set of message headers with the specified name. Setting the data will modify the value corresponding to the key value and clear the remaining message headers with the same key value.
1
2HttpRequest.setHeader(String name,
Array values);
Call parameters:
- name: String, specify the key value to be set
- values: Array, specifies a set of data to be set
Set a message header. Setting the data will modify the first value corresponding to the key value and clear the remaining message headers with the same key value.
1
2HttpRequest.setHeader(String name,
String value);
Call parameters:
- name: String, specify the key value to be set
- value: String, specify the data to be set
removeHeader
Delete all message headers with specified key value
1HttpRequest.removeHeader(String name);
Call parameters:
- name: String, specifies the key value to be deleted
read
Read data of specified size from the stream. This method is an alias of the corresponding method of body.
1Buffer HttpRequest.read(Integer bytes = -1) async;
Call parameters:
- bytes: Integer, specifies the amount of data to be read. The default is to read data blocks of random size. The size of the data read depends on the device.
Return results:
- Buffer, returns the data read from the stream. If there is no data to read or the connection is interrupted, null is returned.
readAll
Read all remaining data from the stream. This method is an alias of the corresponding method of body.
1Buffer HttpRequest.readAll() async;
Return results:
- Buffer, returns the data read from the stream. If there is no data to read or the connection is interrupted, null is returned.
write
Write the given data. This method is an alias of the corresponding method in body.
1HttpRequest.write(Buffer data) async;
Call parameters:
- data:Buffer, given the data to be written
json
Writes the given data in JSON encoding
1Value HttpRequest.json(Value data);
Call parameters:
- data: Value, given the data to be written
Return results:
- Value, this method does not return data
Parse the data in the message as JSON encoding
1Value HttpRequest.json();
Return results:
- Value, returns the parsed result
pack
bymsgpackEncoding writes the given data
1Value HttpRequest.pack(Value data);
Call parameters:
- data: Value, given the data to be written
Return results:
- Value, this method does not return data
bymsgpackEncoding and parsing the data in the message
1Value HttpRequest.pack();
Return results:
- Value, returns the parsed result
end
Set the end of current message processing,ChainThe processor does not continue with subsequent transactions
1HttpRequest.end();
isEnded
Query whether the current message has ended
1Boolean HttpRequest.isEnded();
Return results:
- Boolean, returns true when finished
clear
Clear message content
1HttpRequest.clear();
sendTo
Sends a formatted message to the given stream object
1HttpRequest.sendTo(Stream stm) async;
Call parameters:
- stm:Stream, specifies the stream object that receives the formatted message
readFrom
Reads the formatted message from the given cache stream object and parses the populated object
1HttpRequest.readFrom(Stream stm) async;
Call parameters:
- stm:Stream, specifies the stream object for reading formatted messages
toString
Returns the string representation of the object. Generally, "[Native Object]" is returned. The object can be re-implemented according to its own characteristics.
1String HttpRequest.toString();
Return results:
- String, returns the string representation of the object
toJSON
Returns a JSON format representation of the object, generally returning a collection of readable properties defined by the object.
1Value HttpRequest.toJSON(String key = "");
Call parameters:
- key: String, not used
Return results:
- Value, returns a value containing JSON serializable