Explorar o código

fix webdav exists bug

821938089 %!s(int64=4) %!d(string=hai) anos
pai
achega
6e38daab63
Modificáronse 1 ficheiros con 10 adicións e 1 borrados
  1. 10 1
      app/src/main/java/io/legado/app/lib/webdav/WebDav.kt

+ 10 - 1
app/src/main/java/io/legado/app/lib/webdav/WebDav.kt

@@ -171,7 +171,16 @@ open class WebDav(val path: String, val authorization: Authorization) {
      * 文件是否存在
      */
     suspend fun exists(): Boolean {
-        return getWebDavFile() != null
+        return kotlin.runCatching {
+            val requestPropsStr = DIR.replace("%s", "")
+            return okHttpClient.newCallResponse {
+                url(url)
+                addHeader(authorization.name, authorization.data)
+                addHeader("Depth", "0")
+                val requestBody = requestPropsStr.toRequestBody("application/xml".toMediaType())
+                method("PROPFIND", requestBody)
+            }.code == 207
+        }.getOrDefault(false)
     }
 
     /**