'Submits a HTTP METHOD -X request.
'Like PROPFIND","MKCOL","PROPPATCH","COPY","MOVE","REPORT" - needed eg for WEBDAV
'headers = map of headerkeys headervalues
'Data() is RequestBody Data in bytes() of MediaType as string eg "text/xml;charset=utf-8"
Public Sub SendMethodWithData(sMethod As String, Link As String,sMediatype As String, Data() As Byte,headers As Map)
Dim RequestBody As JavaObject
RequestBody.InitializeNewInstance("okhttp3.RequestBody",Null)
Dim Mediatype As JavaObject
Mediatype.InitializeNewInstance("okhttp3.MediaType",Null)
Dim builder As JavaObject
builder.InitializeNewInstance("okhttp3.Request.Builder",Null)
builder.RunMethodJO("url", Array(Link))
builder.RunMethod("method", Array(sMethod, RequestBody.RunMethodJO("create", Array(Mediatype.RunMethodJO("parse",Array("text/xml; charset=utf-8")),Data))))
Dim jo As JavaObject = req
jo.SetField("builder", builder)
'req.InitializePut2(Link,Data) ' does not function because method is back to PUT
If headers <> Null And headers.IsInitialized Then
For Each key As String In headers.Keys
Select True
Case key.ToLowerCase.Contains("content-type")
req.SetContentType(headers.Get(key))
Case Else
req.SetHeader(key,headers.Get(key))
End Select
Next
end if
CallSubDelayed2(HttpUtils2Service, "SubmitJob", Me)
End Sub