2016-05-13 8 views
0

Mit einem Openoffice-Makro möchte ich Daten von meinem lokalen Webserver laden. Ich habe diesen Code versucht:OpenOffice: Wie lade ich Daten von der HTTP-Adresse?

Dim stringWeb As String, webAddr As String 
Dim doc As Object 
Dim opts(0) As New com.sun.star.beans.PropertyValue 

webAddr = "http://127.0.0.1:8080" 

opts(0).Name = "Hidden" 
opts(0).Value = True 

doc = StarDesktop.loadComponentFromURL(webAddr, "_blank", 0, opts) 
stringWeb = doc.Text.String 
doc.close(True) 

MsgBox(stringWeb, 0, "Result") 

Dieser Code funktioniert, aber wie zu tun, wenn der Webserver nicht auf Port 80 zu hören? (Zum Beispiel auf Port 8080) Ich versuchte webAddr = "http://127.0.0.1:8080", aber es funktioniert nicht :(

mir jemand helfen könnte Danke

Edit:?. Vielleicht mit dieser Art von Code

?
Dim vParser, vDisp 
Dim oUrl As New com.sun.star.util.URL 
oUrl.Complete = "http://127.0.0.1:8080" 
vParser = createUnoService("com.sun.star.util.URLTransformer") 
vParser.parseStrict(oUrl) 

vDisp = StarDesktop.queryDispatch(oUrl, "", 0) 
If (Not IsNull(vDisp)) Then vDisp.dispatch(oUrl, noargs()) 

Aber ich weiß nicht, wie es zu benutzen:/

+0

nur eine zufällige Vermutung, vielleicht können Sie die 'scheme' (' http: // ') fallen, wenn es eine explizite Port geben? Andernfalls müssen Sie den Fehler, den Sie erhalten, wenn Sie das zweite Formular verwenden, posten. – jjm

+0

Der Fehler ist: Die URL scheint nicht unterstützt zu werden. – Jerry

+0

(In Bezug auf die Bearbeitung): Guter Versuch, aber der 'URLTransformer' Service wird in diesem Fall nicht helfen. Ich habe gerade darüber nachgedacht. Das Problem ist nicht wirklich ein URL-Analyseproblem, obwohl der Fehler sich anhören mag. –

Antwort

1

Dies funktioniert:

webAddr = "http://178.33.250.62:8080/" 'portquiz.net 

Auf meinem Rechner habe ich nicht einen Web-Server überhaupt ausgeführt wird, so dass die folgenden Ergebnisse in einer Illegal („Nicht unterstützte URL“):

webAddr = "http://127.0.0.1" 

Es scheint also, dass das Problem nicht auf Openoffice verwandt oder Einfach. Das Problem liegt vielmehr in der Konfiguration Ihres Webservers.

+0

mmmmm neugierig o_O Es scheint, Sie haben Recht. mm, lassen Sie mich überprüfen: P – Jerry

+1

Sie haben völlig richtig! Danke! – Jerry

0

Tatsächlich sendet Apache einen PROPFIND-Befehl an den Webserver (vor GET). Und mein Webserver kennt diesen Befehl nicht.

Header senden:

PROPFIND/HTTP/1.1 
Host: 127.0.0.1:8080 
User-Agent: Apache OpenOffice/4.1.2 
Accept-Encoding: gzip 
Depth: 0 
Content-Type: application/xml 
Content-Length: 259 

<?xml version="1.0" encoding="utf-8"?><propfind xmlns="DAV:"><prop><resourcetype xmlnx="DAV:"/><IsReadOnly xmlnx="http://ucb.openoffice.org/dav/props/"/><getcontenttype xmlnx="DAV:"/><supportedlock xmlnx="DAV:"/><lockdiscovery xmlnx="DAV:"/></prop></propfind>