import ballerina/io;
import ballerina/http;
import ballerina/mime;
endpoint http:Client clientEndpoint {
targets: [{
url: "https://postman-echo.com"
}]
};function main (string[] args) { http:Request req = new;
var response = clientEndpoint -> get("/get?test=123", req);
match response {
http:Response resp => {
io:println("GET request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
}
req.setStringPayload("POST: Hello World");
response = clientEndpoint -> post("/post", req);
match response {
http:Response resp => {
io:println("\nPOST request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);} }
json jsonMsg = {method:"PUT", payload:"Hello World"};
req.setJsonPayload(jsonMsg);
response = clientEndpoint -> put("/put", req);
match response {
http:Response resp => {
io:println("\nPUT request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
}
xml xmlMsg = xml `<request><method>PATCH</method><payload>Hello World!</payload></request>`;
req.setXmlPayload(xmlMsg);
json j = {};
req.setJsonPayload(j);
response = clientEndpoint -> patch("/patch", req);
match response {
http:Response resp => {
io:println("\nPATCH request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
} req.setStringPayload("DELETE: Hello World");
response = clientEndpoint -> delete("/delete", req);
match response {
http:Response resp => {
io:println("\nDELETE request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);} } req.setStringPayload("CUSTOM: Hello World");
response = clientEndpoint -> execute("COPY", "/get", req); req = new;
req.addHeader("Sample-Name", "http-client-connector");
response = clientEndpoint -> get("/get", req);
match response {
http:Response resp => {
string contentType = resp.getHeader("Content-Type");
io:println("\nContent-Type: " + contentType); int statusCode = resp.statusCode;
io:println("Status code: " + statusCode); }
http:HttpConnectorError err =>{io:println(err.message);} }
}
HTTP Client ConnectorThe HTTP Client Connector can be used to connect to and interact with an HTTP server. |
|
import ballerina/io;
import ballerina/http;
import ballerina/mime;
endpoint http:Client clientEndpoint {
targets: [{
url: "https://postman-echo.com"
}]
};
|
|
function main (string[] args) {
|
|
http:Request req = new;
|
|
var response = clientEndpoint -> get("/get?test=123", req);
match response {
http:Response resp => {
io:println("GET request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
}
|
Send a GET request to the specified endpoint |
req.setStringPayload("POST: Hello World");
response = clientEndpoint -> post("/post", req);
match response {
http:Response resp => {
io:println("\nPOST request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
|
Set a string payload to the message to be sent to the endpoint. |
}
|
|
json jsonMsg = {method:"PUT", payload:"Hello World"};
req.setJsonPayload(jsonMsg);
response = clientEndpoint -> put("/put", req);
match response {
http:Response resp => {
io:println("\nPUT request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
}
|
Set a JSON payload to the message to be sent to the endpoint. |
xml xmlMsg = xml `<request><method>PATCH</method><payload>Hello World!</payload></request>`;
req.setXmlPayload(xmlMsg);
json j = {};
|
Set an XML payload to the message to be sent to the endpoint. |
req.setJsonPayload(j);
response = clientEndpoint -> patch("/patch", req);
match response {
http:Response resp => {
io:println("\nPATCH request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
}
|
Remove the json payload. |
req.setStringPayload("DELETE: Hello World");
response = clientEndpoint -> delete("/delete", req);
match response {
http:Response resp => {
io:println("\nDELETE request:");
var msg = resp.getJsonPayload();
match msg {
json jsonPayload => {
io:println(jsonPayload);
}
http:PayloadError payloadError => {
io:println(payloadError.message);
}
}
}
http:HttpConnectorError err =>{io:println(err.message);}
|
|
}
|
|
req.setStringPayload("CUSTOM: Hello World");
|
|
response = clientEndpoint -> execute("COPY", "/get", req);
|
The execute() action can be used if one needs to use custom HTTP verbs. |
req = new;
req.addHeader("Sample-Name", "http-client-connector");
response = clientEndpoint -> get("/get", req);
match response {
http:Response resp => {
string contentType = resp.getHeader("Content-Type");
io:println("\nContent-Type: " + contentType);
|
|
int statusCode = resp.statusCode;
io:println("Status code: " + statusCode);
|
|
}
http:HttpConnectorError err =>{io:println(err.message);}
|
|
}
}
|
|
$ ballerina run http-client-connector.bal
GET request:
{"args":{"test":"123"},"headers":{"host":"postman-echo.com","user-agent":"ballerina/0.92.1-SNAPSHOT","x-forwarded-port":"443","x-forwarded-proto":"https"},"url":"https://postman-echo.com/get?test=123"}
|
|
POST request:
{"args":{},"data":"POST: Hello World","files":{},"form":{},"headers":{"host":"postman-echo.com","content-length":"17","content-type":"text/plain","user-agent":"ballerina/0.92.1-SNAPSHOT","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":null,"url":"https://postman-echo.com/post"}
|
|
PUT request:
{"args":{},"data":{"method":"PUT","payload":"Hello World"},"files":{},"form":{},"headers":{"host":"postman-echo.com","content-length":"40","content-type":"application/json","user-agent":"ballerina/0.92.1-SNAPSHOT","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":{"method":"PUT","payload":"Hello World"},"url":"https://postman-echo.com/put"}
|
|
PATCH request:
{"args":{},"data":"<request><method>PATCH</method><payload>Hello World!</payload></request>","files":{},"form":{},"headers":{"host":"postman-echo.com","content-length":"72","content-type":"application/xml","user-agent":"ballerina/0.92.1-SNAPSHOT","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":null,"url":"https://postman-echo.com/patch"}
|
|
DELETE request:
{"args":{},"data":"DELETE: Hello World","files":{},"form":{},"headers":{"host":"postman-echo.com","content-length":"19","content-type":"text/plain","user-agent":"ballerina/0.92.1-SNAPSHOT","x-forwarded-port":"443","x-forwarded-proto":"https"},"json":null,"url":"https://postman-echo.com/delete"}
|
|
Content-Type: application/json; charset=utf-8
Status code: 200
|
|