Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

api net.http

Ayhan Rashidov edited this page Oct 11, 2021 · 9 revisions

$.net.http API

Represents the http namespace with its fields.

Reference

  • SAP Help

https://help.sap.com/doc/3de842783af24336b6305a3c0223a369/2.0.03/en-US/$.net.http.html

  • Module

https://github.com/SAP/xsk/tree/main/modules/api/api-xsjs/src/main/resources/META-INF/dirigible/xsk/http

  • Sample usage:
let http = $.net.http;

/*
Read service.xshttpdest inside the Demo package that contains:
host=https://services.odata.org;
pathPrefix=/V4/Northwind/Northwind.svc/;
*/

let destination = http.readDestination("Demo", "service");

// create client
let client = new http.Client();
let request = new http.Request(http.GET, "/"); // new Request(METHOD, PATH)
// the PATH will be prefixed by destination's pathPrefix, e.g. "/search?" on the request
// set the timeout in seconds
client.setTimeout(10);
// send the request and synchronously get the response
client.request(request, dest);
let response = client.getResponse();

// get all the cookies and headers from the response
let cookies = [], headers = [];

for(let i = 0; i< response.cookies.length; i++) {
    cookies.push(response.cookies[i]);
}

for(let i = 0; i< response.headers.length; i++) {
    headers.push(response.headers[i]);
}

// get the body
let body;
if(!response.body)
    body = "";
else
    body = response.body;

// close the connection
client.close();        // prevent socket leak - see xsengine.ini: [communication] - max_open_sockets_per_request

// check the contents of the response
$.response.setBody("status: " + response.status + " cookies: " + JSON.stringify(cookies) + " headers: " + JSON.stringify(headers) + " body: " + body.asString());
  • Coverage
Classes Description Status
Destination Contains metadata, for example, host name, port number and custom values.
Client HTTP(s) Client for outbound connectivity. This client supports HTTP and HTTPs connections over HTTP or SOCKS proxy.
Request Request class to be used with HTTP client.
Methods Description Status
readDestination(package, objectName) Returns the HTTP destination with the given name as a Destination object.
  • HTTP constants for methods
Members Type Default Description Status
OPTIONS number 0 HTTP Method OPTIONS.
GET number 1 HTTP Method GET.
HEAD number 2 HTTP Method HEAD.
POST number 3 HTTP Method POST.
PUT number 4 HTTP Method PUT.
DEL number 5 HTTP Method DEL.
TRACE number 6 HTTP Method TRACE.
CONNECT number 7 HTTP Method CONNECT.
PATCH number 8 HTTP Method PATCH.
  • HTTP constants for status codes
Members Type Default Status
CONTINUE number 100
SWITCH_PROTOCOL number 101
OK number 200
CREATED number 201
ACCEPTED number 202
NON_AUTHORITATIVE number 203
NO_CONTENT number 204
RESET_CONTENT number 205
PARTIAL_CONTENT number 206
MULTIPLE_CHOICES number 300
MOVED_PERMANENTLY number 301
FOUND number 302
SEE_OTHER number 303
NOT_MODIFIED number 304
USE_PROXY number 305
TEMPORARY_REDIRECT number 307
BAD_REQUEST number 400
UNAUTHORIZED number 401
PAYMENT_REQUIRED number 402
FORBIDDEN number 403
NOT_FOUND number 404
METHOD_NOT_ALLOWED number 405
NOT_ACCEPTABLE number 406
PROXY_AUTH_REQUIRED number 407
REQUEST_TIMEOUT number 408
CONFLICT number 409
GONE number 410
LENGTH_REQUIRED number 411
PRECONDITION_FAILED number 412
REQUEST_ENTITY_TOO_LARGE number 413
REQUEST_URI_TOO_LONG number 414
UNSUPPORTED_MEDIA_TYPE number 415
REQUESTED_RANGE_NOT_SATISFIABLE number 416
EXPECTATION_FAILED number 417
INTERNAL_SERVER_ERROR number 500
NOT_YET_IMPLEMENTED number 501
BAD_GATEWAY number 502
SERVICE_UNAVAILABLE number 503
GATEWAY_TIMEOUT number 504
HTTP_VERSION_NOT_SUPPORTED number 505
  • Issues

https://github.com/SAP/xsk/issues/20

  • Unit Tests

https://github.com/SAP/xsk/tree/main/modules/engines/engine-xsjs/src/test/resources/test/xsk/http/http.xsjs

  • Integration Tests ❌

Wiki icons legend

✅ - Feature implemented and working as supposed.
⚠️ - Feature partially implemented and needs to be finished.
❌ - Feature not implemented yet.

Project

Architecture

Tips & Tricks

Infrastructure

Troubleshooting guide

Clone this wiki locally