【问题标题】:passing LotusScript parameter to Java将 LotusScript 参数传递给 Java
【发布时间】:2016-04-19 17:09:01
【问题描述】:

我正在从 LotusScript 调用一个 java getHTML( urlToRead ) 类(谢谢,Matt Holthe),它使用 CONST 来传递 URL。 java代码位于java“脚本库”中。当我将常量 urlToRead 更改为变量时,java 类不会读取该变量并且我得到一个空响应。我需要使用内存中的文档,还是有更简单的方法?我需要得到一个返回的 json 值,所以除非我使用内存中的文档,否则“调用”不起作用,这是我试图避免的。我开始认为我必须将整个代码转换为 java,但在 LotusScript 中更舒服。这是在 Notes 客户端中运行的。

import java.io.*;
import java.net.*;

public class GetHTML {

    public String getHTML( String urlToRead) {
        URL url;
        HttpURLConnection conn; 
          BufferedReader rd; 
          String line; 
          String result = ""; 
          try {
             url = new URL(urlToRead);
             conn = (HttpURLConnection) url.openConnection();
             conn.setRequestMethod("PUT");
             rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
             while ((line = rd.readLine()) != null) {
                result += line;
             }
             rd.close();
          } catch (Exception e) {
             e.printStackTrace();
          }
        return result;
    }
}


Uselsx "*javacon"
Use "GetHTML"

Function getWebData( myURLvar As String) As String
    Const myURL = "http://mywebsite.com/testdb.nsf/testagent1"
    Dim js As JAVASESSION
    Dim getHTMLClass As JAVACLASS
    Dim getHTMLObject As JavaObject
    Dim html As String
    Set js = New JAVASESSION
    Set getHTMLClass = js.GetClass("GetHTML")
    Set getHTMLObject = getHTMLClass.CreateObject
' next line works because it uses CONSTANT
    html = getHTMLObject.getHTML( myURL )
    Msgbox "html: " + html
' next line does not work, uses variable
    html = getHTMLObject.getHTML( myURLvar )
    Msgbox "html: " + html
    getWebData = html   
End Function

我尝试将 byVal 用于 myURLvar,但这并没有什么不同。如何获取 java 代码以查看变量字符串?

【问题讨论】:

    标签: java lotus-notes lotusscript ls2j


    【解决方案1】:

    这不是关于使用常量或变量字符串作为 getHtml() 的参数。在您的示例中两者都可以正常工作。

    我不得不在 Java 中更改一行以使其运行(“GET”而不是“PUT”):

            conn.setRequestMethod("GET");
    

    这是我的 LotusScript 代理的工作版本:

    UseLSX "*javacon"
    Use "GetHTML"
    Sub Initialize
        getWebData("http://www.spiegel.de/")
    End Sub
    
    Function getWebData( myURLvar As String) As String
        Const myURL = "http://www.spiegel.de/"
        Dim js As JAVASESSION
        Dim getHTMLClass As JAVACLASS
        Dim getHTMLObject As JavaObject
        Dim html As String
        Set js = New JAVASESSION
        Set getHTMLClass = js.GetClass("GetHTML")
        Set getHTMLObject = getHTMLClass.CreateObject
    ' next line works because it uses CONSTANT
        html = getHTMLObject.getHTML( myURL )
        MsgBox "html: " + html
    ' next line does not work, uses variable
        html = getHTMLObject.getHTML( myURLvar )
        MsgBox "html: " + html
        getWebData = html   
    End Function
    

    【讨论】:

    • 呃。我正在尝试做一个 POST。
    • 谢谢,Knut,我现在正在更新我的代码并进行测试。
    猜你喜欢
    • 1970-01-01
    • 2013-10-04
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2018-09-30
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多