Получить Html код страницы из Лотуса?

  • Автор темы ak-47
  • Дата начала
A

ak-47

#1
Возможно ли из лотуса отправить HTTP-запрос на какой нибудь сайт, и полученный в ответ HTML код сохранить в переменной ? Желательно сделать это в LS.
П.с. почему то мне кажется, что существует такая @-функция... а может только кажется?
 
D

D!m@n

#2
Насчет @-функции - Вам сильно кажется.
Вам нужен OLE-класс WinHttpRequest. Поищите на MSDN, там все его свойства и методы описаны.

Как альтернативный вариант - можно подумать в сторону использования классов .NET из-под лотуса (для этого их надо зарегить в системе как OLE-классы с помощью утилиты regasm).

Но для описанной Вами задачи вполне подойдет WinHttpRequest.
 
D

D!m@n

#3
Кстати, откопал свой недавний код на эту тему:

Функция принимает URL и возвращает страничку по этому адресу (как строку).
Код:
Function ProcessPage(url As String) As String
Dim httpobj As Variant

Set httpobj=CreateObject("winhttp.winhttprequest.5.1")

Call httpobj.Open("GET", url, False)

Call httpobj.SetRequestHeader ("Accept-Language", "ru")
httpobj.SetRequestHeader "Accept-Charset", "Windows-1251" 

httpobj.setRequestHeader "CACHE_CONTROL", "no-cache" 
httpobj.setRequestHeader "CONNECTION", "Close" 

Call httpobj.Send("")

ProcessPage=httpobj.ResponseText

Set httpobj=Nothing
End Function
 
O

oshmianski

#4
Для: ak-47
1. @URLOpen
2. GetDocumentByURL method
для них нужен WebRetriever
3. на жабе. вот примерный код (__http://www.intertrust.ru/Site/itforum.nsf/all/1CF2925FB5A9460943256A4F0031AF11?OpenDocument). на том же intertrust'е был пример от Ника Норкина.

Код:
import java.net.*;
import java.io.*;
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here) 

URL url=new URL("http://www.blackmetal.com");
InputStream is=url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"windows-1251"));
try
{
String nextLine=null;
while ((nextLine=br.readLine())!=null) 
System.out.println(nextLine);
}
catch(EOFException e)
{
e.printStackTrace();
}
br.close();
is.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
 
A

ak-47

#5
Спасибо, думаю вариант с джавой предпочтительнее, т.к. может работать в бэк-енд.