create a new page, using OOoBasic/Generic/HttpRequest as a template.
Front page
Search
掲示板
Reload
Help
Browse Log
掲示板の使い方
OOo 掲示板3
OOo 掲示板2
OOo 掲示板
掲示板
雑談掲示板
New
List of pages
Recent changes
Backup
簡単ヘルプ
整形ルール
Start:
* HTTP Request [#d7c99347]
ネットワーク上のファイルをドキュメントとして開く場合は lo...
一方で POST メソッドでファイルを受け取る場合には上記の方...
http や https プロトコルの場合には css.ucb.WebDAVContentP...
少し複雑ですが、次のようにして https プロトコルのアドレス...
#code(basic){{
Sub HttpRequest_post
sURL = "https://chart.googleapis.com/chart"
sBody = "cht=qr&chs=100x100&chl=QR"
oInput = Post(sURL, sBody)
msgbox oInput.available()
End Sub
Function Post(sURL As String, sBody As String) As Variant
oUCB = CreateUnoService("com.sun.star.ucb.UniversalCont...
oId = oUCB.createContentIdentifier(sURL)
oContent = oUCB.queryContent(oId)
oDataSink = CreateUnoListener("XDataSink_", _
"com.sun.star.io.XActiveDataSink")
oCommandEnv = CreateUnoListener("XCommandEnv_", _
"com.sun.star.ucb.XCommandEnvironment")
oBodyStream = CreateUnoService("com.sun.star.io.Pipe")
oTextOutput = CreateUnoService("com.sun.star.io.TextOut...
oTextOutput.setOutputStream(oBodyStream)
oTextOutput.writeString(sBody)
oTextOUtput.closeOutput()
oPostArgs = CreateUnoStruct("com.sun.star.ucb.PostComma...
oPostArgs.Source = oBodyStream
oPostArgs.Sink = oDataSink
aCommand = CreateUnoStruct("com.sun.star.ucb.Command")
aCommand.Name = "post"
aCommand.Argument = oPostArgs
oRet = oContent.execute(aCommand, -1, oCommandEnv)
oInput = oDataSink.getInputStream()
Post = oInput
End Function
Dim oStream As Variant
Function XDataSink_setInputStream(oLocStream As Variant)
oStream = oLocStream
End Function
Function XDataSink_getInputStream() As Variant
XDataSink_getInputStream = oStream
End Function
Function XCommandEnv_getInteractionHandler()' As Variant
XCommandEnv_getInteractionHandler = CreateUnoListener(_
"XInteractionHandle_", "com.sun.star.task.XInteract...
End Function
Function XCommandEnv_getProgressHandler()' As Variant
XCommandEnv_getProgressHandler = CreateUnoListener(_
"XProgressHandle_", "com.sun.star.ucb.XProgressHand...
End Function
Function XInteractionHandle_handle(oRequest)
End Function
Function XProgressHandle_push(nStatus)
End Function
Function XProgressHandle_update(nStatus)
End Function
Function XProgressHandle_pop()
End Function
}}
** InteractionHandler [#ubabf1a3]
css.task.XInteractionHandler インターフェースを使用してユ...
HTTPのリクエストで認証が必要な場所でも利用されており、ユ...
次のハンドラは URL へアクセスした際の認証を取り扱います。
#code(basic){{
Sub InteractionHandler_handle(req)
r = req.getRequest()
If CheckExceptionType(r, "com.sun.star.ucb.URLAuthentic...
conts = req.getContinuations()
for i = 0 to ubound(conts) step 1
cont = conts(i)
If HasUnoInterfaces(cont, "com.sun.star.ucb.XIntera...
cont.setUserName("foo")
cont.setPassword("bar")
cont.select()
Exit For
End If
next
End If
End Sub
Function CheckExceptionType(e, sType As String) As Boolean
ret = False
idlclass = CreateUnoService("com.sun.star.reflection.Co...
If not IsNull(idlclass) Then
ret = (idlclass.getTypeClass() = com.sun.star.uno.Typ...
idlclass.getName() = sType)
End If
CheckExceptionType = ret
End Function
}}
End:
* HTTP Request [#d7c99347]
ネットワーク上のファイルをドキュメントとして開く場合は lo...
一方で POST メソッドでファイルを受け取る場合には上記の方...
http や https プロトコルの場合には css.ucb.WebDAVContentP...
少し複雑ですが、次のようにして https プロトコルのアドレス...
#code(basic){{
Sub HttpRequest_post
sURL = "https://chart.googleapis.com/chart"
sBody = "cht=qr&chs=100x100&chl=QR"
oInput = Post(sURL, sBody)
msgbox oInput.available()
End Sub
Function Post(sURL As String, sBody As String) As Variant
oUCB = CreateUnoService("com.sun.star.ucb.UniversalCont...
oId = oUCB.createContentIdentifier(sURL)
oContent = oUCB.queryContent(oId)
oDataSink = CreateUnoListener("XDataSink_", _
"com.sun.star.io.XActiveDataSink")
oCommandEnv = CreateUnoListener("XCommandEnv_", _
"com.sun.star.ucb.XCommandEnvironment")
oBodyStream = CreateUnoService("com.sun.star.io.Pipe")
oTextOutput = CreateUnoService("com.sun.star.io.TextOut...
oTextOutput.setOutputStream(oBodyStream)
oTextOutput.writeString(sBody)
oTextOUtput.closeOutput()
oPostArgs = CreateUnoStruct("com.sun.star.ucb.PostComma...
oPostArgs.Source = oBodyStream
oPostArgs.Sink = oDataSink
aCommand = CreateUnoStruct("com.sun.star.ucb.Command")
aCommand.Name = "post"
aCommand.Argument = oPostArgs
oRet = oContent.execute(aCommand, -1, oCommandEnv)
oInput = oDataSink.getInputStream()
Post = oInput
End Function
Dim oStream As Variant
Function XDataSink_setInputStream(oLocStream As Variant)
oStream = oLocStream
End Function
Function XDataSink_getInputStream() As Variant
XDataSink_getInputStream = oStream
End Function
Function XCommandEnv_getInteractionHandler()' As Variant
XCommandEnv_getInteractionHandler = CreateUnoListener(_
"XInteractionHandle_", "com.sun.star.task.XInteract...
End Function
Function XCommandEnv_getProgressHandler()' As Variant
XCommandEnv_getProgressHandler = CreateUnoListener(_
"XProgressHandle_", "com.sun.star.ucb.XProgressHand...
End Function
Function XInteractionHandle_handle(oRequest)
End Function
Function XProgressHandle_push(nStatus)
End Function
Function XProgressHandle_update(nStatus)
End Function
Function XProgressHandle_pop()
End Function
}}
** InteractionHandler [#ubabf1a3]
css.task.XInteractionHandler インターフェースを使用してユ...
HTTPのリクエストで認証が必要な場所でも利用されており、ユ...
次のハンドラは URL へアクセスした際の認証を取り扱います。
#code(basic){{
Sub InteractionHandler_handle(req)
r = req.getRequest()
If CheckExceptionType(r, "com.sun.star.ucb.URLAuthentic...
conts = req.getContinuations()
for i = 0 to ubound(conts) step 1
cont = conts(i)
If HasUnoInterfaces(cont, "com.sun.star.ucb.XIntera...
cont.setUserName("foo")
cont.setPassword("bar")
cont.select()
Exit For
End If
next
End If
End Sub
Function CheckExceptionType(e, sType As String) As Boolean
ret = False
idlclass = CreateUnoService("com.sun.star.reflection.Co...
If not IsNull(idlclass) Then
ret = (idlclass.getTypeClass() = com.sun.star.uno.Typ...
idlclass.getName() = sType)
End If
CheckExceptionType = ret
End Function
}}
Page: