Autor Thema: URL aufrufen ohne den Browser zu öffnen  (Gelesen 8624 mal)

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
URL aufrufen ohne den Browser zu öffnen
« am: 12.12.05 - 13:30:25 »
Hallo Leute,
ist es irgendwie möglich in script oder @ eine Url abzuschicken ohne, dass der Browser aufgeht? So wie (@)UrlOpen nur halt ohne Browser...?
lG
-daniel
†090620141300

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #1 am: 12.12.05 - 13:37:56 »
über die Win-API geht es.
Gruß
Dirk

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #3 am: 12.12.05 - 14:10:45 »
Danke für die Tipps.
Ich denke ich werde mich mal in der API Programmierung versuchen. Vielleicht gehts ja..... Ist sicher weniger Aufwand als die zuständigen Herren zu überzeugen, dass wget überall installiert wird....
†090620141300

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #4 am: 12.12.05 - 14:15:29 »
in bem folgenden Beispiel wird die Seite von www.ATNotes.de in eine Datei geschrieben. Wenn ich deine Anforderung richtig verstanden habe, musst du den Buffer nicht mehr in eine Datei schreiben.

Code
Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (Byval sAgent As String, Byval _
lAccessType As Long, Byval sProxyName As String, Byval sProxyBypass As String, Byval lFlags As Long) As Long

Declare Function InternetCloseHandle Lib "wininet" (Byval hInet As Long) As Integer

Declare Function InternetReadFile Lib "wininet" (Byval hFile As Long, Byval sBuffer As String, Byval _
lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer

Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (Byval hInternetSession As Long, _
Byval lpszUrl As String, Byval lpszHeaders As String, Byval dwHeadersLength As Long, Byval dwFlags As Long, _
Byval dwContext As Long) As Long


Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000

Const UserAgent = "Wininet Test"



Sub Click(Source As Button)
	Dim ws As New NotesUIWorkSpace
	Dim uidoc As NotesUIDocument
	Dim doc As NotesDocument
	Set uidoc = ws.CurrentDocument
	
	Dim l&, Buffer$, hOpen&, hFile&, Result&
	
	l = 50000
	Buffer = Space(l)
	url = "http://www.atnotes.de"
'	hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_DIRECT, 0&, 0&, 0)   ' ohne Proxy
'	hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PROXY, 0&, 0&, 0)   ' mit Proxy
	hOpen = InternetOpen(UserAgent, 0, 0&, 0&, 0)  ' wie in Windows eingestellt
	hFile = InternetOpenUrl(hOpen,url, 0&, 0&, INTERNET_FLAG_RELOAD, 0&)
	
	Call InternetReadFile(hFile, Buffer, l, Result&)
	Call InternetCloseHandle(hFile)
	Call InternetCloseHandle(hOpen)
	
	Buffer = Left$(Buffer, Result)
	Call uidoc.FieldSetText("Body", Buffer)   ' QuellCode ins Feld schreiben
	Open "d:\ATNotes\_dokument.htm" For Output As #1 
	Print #1, Buffer ' Quellcode in Datei schreiben
	Close #1
End Sub
Gruß
Dirk

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #5 am: 12.12.05 - 14:20:16 »
In einem Server-Agent läuft das aber nicht.! ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #6 am: 12.12.05 - 14:23:34 »
ne ne Win-API kommt mir auf keinen Server.  ;D
Gruß
Dirk

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #7 am: 12.12.05 - 14:54:06 »
WOW Dirk.....
Ich kann zwar noch nicht mit sicherheit sagen, ob es funktioniert, schaut aber recht gut aus.
Ich glaube das InternetOpen, InternetOpenUrl und InternetCloseHandle ist genau das was ich suche.
 :D Vielen, vielen Dank. :D

Der Aufruf erfolgt übrigens von einem Client

-daniel
†090620141300

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #8 am: 12.12.05 - 15:47:02 »
Danke   :)
Gibts eigentlich eine Win-Api Möglichkeit, die auch auf dem Server läuft (nur zur Vervollständigung)?
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #9 am: 12.12.05 - 15:58:13 »
habs nicht probiert, aber ohne NotesUIWorkSpace und NotesUIDocument sollte es funktionieren.

Code
Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (Byval sAgent As String, Byval _
lAccessType As Long, Byval sProxyName As String, Byval sProxyBypass As String, Byval lFlags As Long) As Long

Declare Function InternetCloseHandle Lib "wininet" (Byval hInet As Long) As Integer

Declare Function InternetReadFile Lib "wininet" (Byval hFile As Long, Byval sBuffer As String, Byval _
lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer

Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (Byval hInternetSession As Long, _
Byval lpszUrl As String, Byval lpszHeaders As String, Byval dwHeadersLength As Long, Byval dwFlags As Long, _
Byval dwContext As Long) As Long


Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000

Const UserAgent = "Wininet Test"



Sub Click(Source As Button)
Dim l&, Buffer$, hOpen&, hFile&, Result&

l = 50000
Buffer = Space(l)
url = "http://www.atnotes.de"
' hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_DIRECT, 0&, 0&, 0)   ' ohne Proxy
' hOpen = InternetOpen(UserAgent, INTERNET_OPEN_TYPE_PROXY, 0&, 0&, 0)   ' mit Proxy
hOpen = InternetOpen(UserAgent, 0, 0&, 0&, 0)  ' wie in Windows eingestellt
hFile = InternetOpenUrl(hOpen,url, 0&, 0&, INTERNET_FLAG_RELOAD, 0&)

Call InternetReadFile(hFile, Buffer, l, Result&)
Call InternetCloseHandle(hFile)
Call InternetCloseHandle(hOpen)

Buffer = Left$(Buffer, Result)
Open "d:\ATNotes\_dokument.htm" For Output As #1
Print #1, Buffer ' Quellcode in Datei schreiben
Close #1
End Sub
Gruß
Dirk

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #10 am: 12.12.05 - 16:25:47 »
... wenn man dafür einen Windows-Server aufsetzten will.  :-X

und weg ....  ;D
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #11 am: 13.12.05 - 07:03:34 »
 ;) .. habe ich doch geschrieben Win-API kommt mir auf keinen Server  ;D ;D
Gruß
Dirk

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #12 am: 13.12.05 - 07:20:18 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #13 am: 13.12.05 - 08:58:39 »
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");
         }
   }

Danke derweil und lg
-daniel
†090620141300

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #14 am: 13.12.05 - 13:17:46 »
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();
      }
(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;
         }

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();
      }
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 
« Letzte Änderung: 13.12.05 - 13:31:19 von kennwort »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #15 am: 13.12.05 - 16:33:52 »
Was heisst nur die URL abzuschicken.
Es soll so sein wie wenn ich den Browser öffne, eine Url eingebe, auf Enter drücke und dann den Browser wieder schließe. 

Und es heisst Methode, nicht Funktion.
Sorry wusste ich nicht. Java ist absolutes Neuland für mich.

Du willst den Request ausführen, aber nix zurückerhalten?
Genau.
Ich möchte in eine DB einbauen, dass man privare Telefonate führen kann. Wenn man das vom Telefon aus machen möchte, muss man erst seinen Code eingeben. Das Telefon schickt dann eine Url ab. Dadurch merkt sich der Server die nächsten paar Minuten, dass das nächste Telefonat privat zu verrechnen ist. Deswegen, möchte ich aus Notes heraus erst die Url absetzten, und dann die Nummer wählen. Ohne dass sich ein leeres Browserfenster öffnet.

Ich probiere es einmal mit deinem ersten Code. Leider ist der Mensch, der nachschauen kann ob es geklappt (Telefonat wird privat verrechnet) hat  zur Zeit nicht da. Deswegen kann ich erst in den nächsten Tagen sagen ob es passt.
Wenn es soweit ist, hört ihr sofort von mir.

Danke euch für die Mühen :D
-daniel
†090620141300

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #16 am: 13.12.05 - 16:53:10 »
Und es heisst Methode, nicht Funktion.
Sorry wusste ich nicht. Java ist absolutes Neuland für mich.
Ich mein das nicht böse oder ärgerlich. Ich hab nur beschlossen bei solchen grundsätzlichen Sachen spiessig zu sein. Gibt ziemlich viele Leute, die auf solche fundamental falsche Sprache aggressiv reagieren. Und ich kanns verstehen.

Habs selbst nicht getestet. Frag weiter, wenns nicht klappt.

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: URL aufrufen ohne den Browser zu öffnen
« Antwort #17 am: 13.12.05 - 17:09:19 »
...Frag weiter, wenns nicht klappt.
Mach ich. Danke.  :)
†090620141300

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz