Sub CreateKoofrDirectoryAsync(DirUrl As String) As ResumableSub
Dim code As Int
Dim joClient As JavaObject
joClient.InitializeNewInstance("okhttp3.OkHttpClient", Null)
' Build request
Dim joBuilder As JavaObject
joBuilder.InitializeNewInstance("okhttp3.Request$Builder", Null)
joBuilder.RunMethod("url", Array(DirUrl))
' Empty body
Dim joRequestBody As JavaObject
joRequestBody = joRequestBody.InitializeStatic("okhttp3.RequestBody").RunMethod("create", Array(Null, ""))
' Set MKCOL method
joBuilder.RunMethod("method", Array("MKCOL", joRequestBody))
' Add global Authorization header
Dim Auth As String = "Basic " & authBase64
joBuilder.RunMethod("addHeader", Array("Authorization", Auth))
' Build request
Dim joRequest As JavaObject = joBuilder.RunMethod("build", Null)
' Execute in background thread
Dim joCall As JavaObject = joClient.RunMethod("newCall", Array(joRequest))
Dim joResponse As JavaObject
' Wrap the blocking execute in Wait For / Resume
CallSubDelayed2(Me, "RunInBackground", joCall)
Wait For RunInBackground_Result(res As JavaObject)
joResponse = res
code = joResponse.RunMethod("code", Null)
joResponse.RunMethod("close", Null)
Return code
End Sub
' Helper for background execution
Sub RunInBackground(joCall As JavaObject)
Dim joResponse As JavaObject
joResponse = joCall.RunMethod("execute", Null)
CallSubDelayed2(Me, "RunInBackground_Result", joResponse)
End Sub