2017-11-03 18 views
0

저는 localhost에서 실행되는 https REST 서비스를 호출하기 위해 Ballerina (ballerina 0.91) 서비스를 구현했습니다. 나는 그 서비스를 호출하기 위해 http : ClientConnector를 사용했다. 이것은 내 샘플 코드입니다.Ballerinalang에서 localhost https REST 서비스를 호출 할 수없고 시간 초과 오류가 발생합니까?

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) 
+0

최신 발레리나 버전 (0.95.0)에서 시도해 볼 수 있습니까? 이전 버전의 HTTPS에는 0.91 이후에 수정 된 문제가있었습니다. – Pubudu

+0

0.95에서 사용해 보았습니다. 그러나 또한 null 응답을 제공합니다. –

답변

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()); 
} 
2

WS02-EI 인증서를 Ballerina client-truststore.jks 파일에 추가하는 것으로 문제를 해결할 수 있습니다.