Skip to main content

How do I make an HTTP 1.0 POST request in JavaScript?

This is the documentation of the API I'm trying to receive a response from.

XL SQL over HTTP POST Request Format Description SQL access to the XL device is exposed via a web services API accessed using a key=value pair POST request to the path /sql-request.do. The body of the request must specify the following two parameters, in this order, separated by an ‘&’ character:

•response_type: Either application/json, or text/xml; detailed descriptions of the response formats are included below. •sql_statement: A single LESQL statement to be evaluated. The length of the unencoded text cannot exceed 2048 bytes. The request may be URL encoded, but does not need to be; if it is, the following HTTP header must be attached to the request:

Content-Type: application/x-www-form-urlencoded

The only other necessary HTTP header is an accurate Content-Length.

ExampleThe entire POST request for a statement selecting the most recent 5 sequence numbers and start times from the Timeline Stream might look like this, without encoding:

POST /sql-request.do HTTP/1.0 Content-Length: 141

response_type=application/json&sql_statement=select sequence_number, start_time from timeline_stream order by sequence_number desc limit 5;

URL encoded, that same request would look like this:

POST /sql-request.do HTTP/1.0 Content-Length: 166 Content-Type: application/x-www-form-urlencoded

response_type=application%2Fjson&sql_statement=select%20​sequence_number%2C%20​start_time%20​from%20​timeline_stream%20​order%20​by%20​sequence_number%20​desc%20​limit%205%3B

And here is the code I'm trying to use.

// Post Request
let postObj = {
  body: "response_type=application/json&sql_statement=select sequence_number, start_time from timeline_stream order by sequence_number desc limit 5",
};

let post = JSON.stringify(postObj);
let url = "http://10.21.32.31/sql-request.do";
let xhr = new XMLHttpRequest();

xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xhr.send(post);

xhr.onload = function () {
  if (xhr.status === 201) {
    console.log("Post successfully created!");
  }
};
Via Active questions tagged javascript - Stack Overflow https://ift.tt/cVEMHn7

Comments