2016-05-13 18 views
0

使用OpenOffice宏,我想从我的本地网络服务器加载数据。我试过这段代码:OpenOffice:如何从http地址加载数据?

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") 

这段代码有效,但是当web服务器没有监听端口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()) 

但我不知道如何使用它:/

+0

只是一个随机猜测,也许你可以删除'scheme'(通过'http://')给当它一个明确的端口?否则,当你使用第二个表单时,你需要发布你得到的错误。 – jjm

+0

错误是:URL似乎是不受支持的。 – Jerry

+0

(关于编辑):好的尝试,但在这种情况下'URLTransformer'服务将无济于事。我只是看着那个。该问题实际上并不是一个URL解析问题,尽管错误听起来可能是这样。 –

回答

1

这工作:

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

在我的机器,我没有在所有运行Web服务器,所以在一个IllegalArgumentException结果如下(“不支持URL”):

webAddr = "http://127.0.0.1" 

那么看来,这个问题是不相关的OpenOffice或基本。相反,问题在于您的Web服务器配置的方式。

+0

mmmmm好奇o_O看起来你有权利。毫米,让我检查:P – Jerry

+1

你完全正确!谢谢! – Jerry

0

事实上,Apache发送一个PROPFIND命令到网络服务器(GET之前)。而我的网络服务器不知道这个命令。

页眉派:

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>