iOS Question SOLVED - Anyway to do PROPFIND in iOS

Robert Valentino

Well-Known Member
Licensed User
Longtime User
Is there anyway to do a PROPFIND in HttpJob on iOS

Trying to recreate this routine in iOS
Koofr List Files:
        ListFileItems.Initialize
            ListFileItems.Clear
            
            If  xSearchFor.Length > 0 Then
                BaseUrl = $"${BaseUrl}${xSearchFor}/"$
            End If
    
            ListFiles_SearchingFor      = BaseUrl
            ListFiles_DirectoriesOnly = xDirectoriesOnly
            ListFiles_FilesOnly          = xFilesOnly
    
            Dim ActualUrl    As String = $"${xPrimaryPath}${BaseUrl}"$
    
            ' --- HttpJob with PROPFIND ---
            Dim j As HttpJob
            j.Initialize("", Me)
    
            ' --- Define the XML body for PROPFIND ---
            Dim xmlBody As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & _
                                    "<D:propfind xmlns:D=""DAV:""><D:allprop/></D:propfind>"   
                                    
            ' --- Create RequestBody (needed by OkHttp) ---
            Dim mt As JavaObject
            
            mt.InitializeStatic("okhttp3.MediaType")
            Dim xmlType As Object = mt.RunMethod("parse", Array("application/xml; charset=utf-8"))
    
            Dim rb As JavaObject
            rb.InitializeStatic("okhttp3.RequestBody")
            Dim body As Object = rb.RunMethod("create", Array(xmlType, xmlBody.GetBytes("UTF8")))

            j.Download(ActualUrl)
            j.GetRequest.As(JavaObject).GetFieldJO("builder").RunMethod("method", Array("PROPFIND", body))
            j.GetRequest.SetHeader("Authorization", BasicAuthorized)
            j.GetRequest.SetHeader("Depth", "1")   
'            j.GetRequest.SetHeader("Depth", "infinity")
    
            ' --- Wait for result ---
            Wait For (j) JobDone(j As HttpJob)
 

Robert Valentino

Well-Known Member
Licensed User
Longtime User
I did this to set the method

B4X:
    Dim no As NativeObject = j.GetRequest

    no.GetField("object").RunMethod("setHTTPMethod:", Array("PROPFIND"))

WOW, like getting all my teeth pulled. Spent all day on this dumb command
 
Upvote 0
Top