OpenOffice:如何从http地址加载数据?
OpenOffice : how to load data from http address?
使用 Openoffice 宏,我想从我的本地网络服务器加载数据。我试过这段代码:
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")
此代码有效,但是当网络服务器不在端口 80 上侦听时怎么办? (例如,在端口 8080 上)
我试过 webAddr = "http://127.0.0.1:8080" 但它不起作用:(
有人可以帮助我吗?谢谢
编辑:也许使用这种代码?
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())
但是我不知道怎么用:/
这个有效:
webAddr = "http://178.33.250.62:8080/" 'portquiz.net
在我的机器上,我根本没有 Web 服务器 运行,因此以下结果导致 IllegalArgumentException ("Unsupported URL"):
webAddr = "http://127.0.0.1"
那么,问题似乎与 OpenOffice 或 Basic 无关。相反,问题在于您的 Web 服务器的配置方式。
事实上,Apache 向网络服务器发送了一个 PROPFIND 命令(在 GET 之前)。而我的网络服务器不知道这个命令。
Headers 发送:
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>
使用 Openoffice 宏,我想从我的本地网络服务器加载数据。我试过这段代码:
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")
此代码有效,但是当网络服务器不在端口 80 上侦听时怎么办? (例如,在端口 8080 上) 我试过 webAddr = "http://127.0.0.1:8080" 但它不起作用:(
有人可以帮助我吗?谢谢
编辑:也许使用这种代码?
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())
但是我不知道怎么用:/
这个有效:
webAddr = "http://178.33.250.62:8080/" 'portquiz.net
在我的机器上,我根本没有 Web 服务器 运行,因此以下结果导致 IllegalArgumentException ("Unsupported URL"):
webAddr = "http://127.0.0.1"
那么,问题似乎与 OpenOffice 或 Basic 无关。相反,问题在于您的 Web 服务器的配置方式。
事实上,Apache 向网络服务器发送了一个 PROPFIND 命令(在 GET 之前)。而我的网络服务器不知道这个命令。
Headers 发送:
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>