2016-04-19 15 views
2

私は、URLを渡すためにCONSTを使用するLotusScript(ありがとう、Matt Holthe)からjava getHTML(urlToRead)クラスを呼び出しています。 Javaコードは、Javaの "script-library"にあります。定数urlToReadを変数に変更すると、Javaクラスは変数を読み込まないため、空の応答が返されます。メモリ内文書を使用する必要がありますか、それとも簡単な方法がありますか?私は、私が避けようとしているメモリ内の文書を使用していない限り、 "呼び出し"が機能しないようにreturn json値を取得する必要があります。私はコード全体をjavaに変換する必要があると思っていますが、LotusScriptではより快適です。これはNotes Clientで実行されています。LotusScriptパラメータをJavaに渡します

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 

私はmyValueにbyValを使用しようとしましたが、違いはありませんでした。どのように変数の文字列を表示するJavaコードを取得するのですか?

答えて

2

getHtml()のパラメータとして定数または可変の文字列を使用することではありません。あなたの例では両方とも正常に動作します。

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 
:これはあなたのLotusScriptエージェントの私の作業バージョンが

 conn.setRequestMethod("GET"); 

です:

は、私はそれを実行するために取得するためにかかわらず(代わりに "PUT" の "GET")は、Javaで1行を変更しなければなりませんでした
+0

私はPOSTをしようとしていた。 – carlo

+0

ありがとう、Knut、今私のコードを更新してテストしています。 – carlo

関連する問題