Не удается вызвать службу REST localhost https в Ballerinalang и выдать ошибку тайм-аута?
Я реализовал службу Ballerina(ballerina 0.91) для вызова службы https REST, которая работает на localhost. Я использовал http:ClientConnector для вызова этой службы. Это мой пример кода.
http:ClientConnector clientConnector = create http:ClientConnector("https://localhost:9445/");
string token = "admin:admin";
string auth = utils:base64encode(token);
message request = {};
messages:setHeader(request,"Basic ",auth);
message response = clientConnector.get("bpmn/runtime/process-instances/",request);
Кстати, здесь я взаимодействую с бизнес-процессом в WSO2 EI.
Проблема в том, что когда я обычно вызываю эту службу, она не отвечает или выдает ошибку, как показано ниже.
error: ballerina.lang.errors:Error, message: failed to invoke 'get' action in ClientConnector. response was not received within sender timeout of 180 seconds
at ballerina.net.http:ClientConnector.get(<native>:0)
at org.wso2.ballerina.connectors.basicauth:ClientConnector.get(org/wso2/ballerina/connectors/basicauth/ClientConnector.bal:28)
at .:main(MainFile.bal:21)
2 ответа
Вот рабочий образец для 0.95.0. Я использую конечную точку аутентификации почтальона:
import ballerina.net.http;
function main(string[] args) {
endpoint<http:HttpClient> httpConnector{
create http:HttpClient("https://postman-echo.com",{});
}
http:Request req = {};
http:Response resp = {};
req.addHeader("Authorization", "Basic cG9zdG1hbjpwYXNzd29yZA==");
resp,_ = httpConnector.get("/basic-auth",req);
println("Auth request:");
println(resp.getJsonPayload());
}
Я решаю свою проблему с добавлением сертификата WSO2-EI в файл Ballerina client-truststore.jks.