2017-12-29 10 views
1

HTTPS 기반 서비스 인 LotusScript를 호출해야합니다.LotusScript에서 HTTPS를 통해 외부 API를 호출하십시오.

Set http = CreateObject("Msxml2.ServerXMLHTTP.3.0") 

을하지만 지금 우리는 리눅스에서 Domino 서버에 응용 프로그램을 이동 한 :

이전에, 내가 사용하고 있습니다.

이 코드를 처음으로 바꾸려면 curl을 호출하여 shell 함수를 호출해야했습니다. 작동하지만 shell 함수는 항상 정수를 반환하므로 응답이 임시 파일로 다시 LotusScript로 전송됩니다. 컬 솔루션은 다소 느립니다. 약 2 초의 응답 시간이 너무 깁니다. MsXml 솔루션은 170ms 이내에 반응했습니다!

그런 다음 임시 파일을 없애기 위해 libcurl을 사용해 보았지만 응답을 수신하려면 콜백 메소드가 필요합니다. LotusScript가 콜백 메소드를 원시 메소드에 전달할 수 없다는 것을 알고 있습니다.

다음 시도는 LS2J를 사용하여 Java에서 HTTP 요청을하는 것입니다. 효과가 있었지만 응답 시간이 6 초를 넘으면 응용 프로그램에 쓸모가 없습니다.

강하 성능을 가진 Linux의 LotusScript에서 외부 API를 호출하려면 어떻게해야합니까?

@ IBM : LotusScript에 HTTP 클라이언트와 JSON 구문 분석기를 사용할 수 있습니까?

+0

이상한. 나는 LS2J를 사용했으며 충분히 빠릅니다. 사실, 우리는 결코 속도를 확인하지 않았고, 필요도 없습니다. 또한 LS에서 사용하는 JSON 라이브러리도 빠릅니다. 내가 아는 한, 모두 OpenNTF에있다. 너 뭐 썼니? 또는 코드를 공유 할 수 있습니까? –

답변

0

LotusScript는 declare이며 외부 C 라이브러리의 함수를 호출 할 수 있습니다.이 함수는 이미 libcurl을 사용하려고 시도했을 때 이미 알고 있다고 가정합니다. 할 수있는 일은 libcurl의 프론트 엔드 역할을하는 자신 만의 C 라이브러리를 작성하는 것입니다. C 코드는 콜백을 제공하고 결과를 처리 할 때까지 기다려야하므로 LotusScript로 다시 전달할 수 있습니다.

+0

나는 그 라인을 따라 생각 해왔다. 그러나 리눅스에서 C 라이브러리를 코딩하는 경험이 없다. 혹시라도 "포인터"가 있으십니까? ;-) –

+0

Domino/Linux 환경에서 C 코딩을 수행 한 팀과 작업 한 지 오래되었습니다. 지금 당장 어떤 일을해야한다면, 다니엘 내시드와 연락 할 사람이 있습니다. 나는이 사이트에 그가 계좌를 가지고 있다고 생각하지 않는다. 그의 정보는 http://blog.nashcom.de/nashcomblog.nsf/dx/contact.htm입니다. 그는 컨설턴트이며 반드시 무료로 조언을 제공하지는 않습니다. –

0

LS를 없애고 Java에서해야 할 일을 제안합니다. 자바에서는 http에 대한 네이티브 라이브러리가 있습니다. 또는 JNA를 사용할 때 C의 콜백을 사용할 수 있습니다.

+0

제안 해 주셔서 감사합니다. 우리는 이미 LS에서 많은 비즈니스 로직을 가지고 있기 때문에 LotusScript를 제거 할 수 없습니다. 나는 또한 자바 기반 웹 에이전트의 응답 시간에 대해 우려하고있다. –