Domino 9 und frühere Versionen > Entwicklung
URL aufrufen ohne den Browser zu öffnen
m3:
... wenn man dafür einen Windows-Server aufsetzten will. :-X
und weg .... ;D
diali:
;) .. habe ich doch geschrieben Win-API kommt mir auf keinen Server ;D ;D
eknori:
gib Java eine Chance ( no API needed )
http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256DC80053681B
rar:
Hi Ulrich,
ich habe leider noch kein Wort Java programmiert. Kannst du mir bitte sagen wie ich die Funktion abändern muss, um nur die Url abzuschicken?
Reicht es, wenn er so ausschaut? Muss ich das GET eventuell durch ein POST ersetzen?
--- Code: ---public String getHTML(String urlToRead) {
URL url; // The URL to read
HttpURLConnection conn; // The actual connection to the web page
try {
url = new URL(urlToRead);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
}
}
--- Ende Code ---
Danke derweil und lg
-daniel
flaite:
Was heisst nur die URL abzuschicken.
Du willst den Request ausführen, aber nix zurückerhalten?
Und es heisst Methode, nicht Funktion.
Vermutlich reicht das:
--- Code: ---try {
url = new URL(urlToRead);
conn = (HttpURLConnection) url.openConnection();
conn.connect();
if (conn.getResponseCode() == 200 ) System.out.println("alles ok"); System.out.println("nix gut. Response code=" + conn.getResponseCode());
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
--- Ende Code ---
(see http://www.koders.com/?s=HttpUrlConnection&_%3Abtn=Search&_%3Ala=Java&_%3Ali=*
HTTPAgentNamingServiceImplTest.java
)
versuchs einfach mal. Hab mir das nicht genauer angeschaut.
Ansonsten:
1.
--- Code: ---
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
result += line;
}
--- Ende Code ---
Ist das schlechter Java Code
(
- warum Streams und Strings mixen?
)
2. ist das unrobuster Java Code
--- Code: --- rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
result += line;
}
rd.close();
} catch (Exception e) {
e.printStackTrace();
}
--- Ende Code ---
Falls in der while() irgendeine Exception auftritt (z.B. Server geht beim Lesen runter) bleiben Sockets auf dem Client offen. Vermutlich sind das genau die Leute, die sich so gerne über Microsoft echauffieren.
3. Ist das inperformanter Java-Code.
Für line besser Stringbuffer verwenden.
3. ist es vermutlich sauberer am Ende ein conn.disconnect() zu machen.
4. Benutzt das LS2J und da wurden - ausser von Ralf - memory leak Probleme gemeldet
5. funktioniert das nicht hinter einer Firewall
und 6. ist das zumindest mit Notes 6 viel einfacher zu lösen, indem man HttpClient aus dem Jakarta-Commons Projekt verwendet.
Gruß Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln