OpenOffice: как загрузить данные с http-адреса?

С помощью макроса 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())

Но я не знаю, как его использовать :/


person Jerry    schedule 13.05.2016    source источник
comment
Просто случайное предположение, может быть, вы можете отказаться от scheme (http://) при указании явного порта? В противном случае вам нужно будет опубликовать ошибку, которую вы получаете при использовании второй формы.   -  person jjm    schedule 13.05.2016
comment
Ошибка: URL-адрес не поддерживается.   -  person Jerry    schedule 13.05.2016
comment
(По поводу редактирования): Хорошая попытка, но сервис URLTransformer в этом случае не поможет. Я только что посмотрел на это. На самом деле проблема не в синтаксическом анализе URL, несмотря на то, как может звучать ошибка.   -  person Jim K    schedule 13.05.2016


Ответы (2)


Это работает:

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

На моей машине вообще не работает веб-сервер, поэтому следующее приводит к исключению IllegalArgumentException ("Неподдерживаемый URL-адрес"):

webAddr = "http://127.0.0.1"

Таким образом, похоже, что проблема не связана с OpenOffice или Basic. Скорее проблема заключается в том, как настроен ваш веб-сервер.

person Jim K    schedule 13.05.2016
comment
ммммм любопытно о_О Похоже вы правы . мм, позвольте мне проверить :P - person Jerry; 13.05.2016

Фактически 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>
person Jerry    schedule 13.05.2016