使用libcurl在android上实现webdav客户端

使用libcurl在android上实现webdav客户端,android,curl,libcurl,webdav,Android,Curl,Libcurl,Webdav,我想在android中实现libcurl函数。原始curl命令如下所示: curl -k --user "username:password" --header "Depth: 1" --data "data" -X PROPFIND https://device_ipaddr/device_name > /tmp/AiStorageList 以下是我在android jni中的代码: CURL *curl; CURLcode res; std::string content; cu

我想在android中实现libcurl函数。原始curl命令如下所示:

curl -k  --user "username:password" --header "Depth: 1" --data "data" -X PROPFIND https://device_ipaddr/device_name > /tmp/AiStorageList
以下是我在android jni中的代码:

CURL *curl;
CURLcode res;
std::string content;

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();

if(curl) {
    struct curl_slist *headers = NULL;
    char *data="data";
    headers = curl_slist_append(headers, "Depth: 1");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER,headers);
    curl_easy_setopt(curl, CURLOPT_URL, "https://device_ipaddr/device_name");
    curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "username:password");
    curl_easy_setopt(curl, CURLOPT_HEADER, 1);
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PROPFIND");
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Post_Response);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);

    res = curl_easy_perform(curl);

    LOGD("res: %d\n", res);
    LOGD("content = %s \n", content.c_str());
    curl_easy_cleanup(curl);
}

curl_global_cleanup();
return 0;
以下是Post_响应函数:

static long Post_Response(void *data, int size, int nmemb, std::string &content)
{
    long sizes = size * nmemb;
    std::string temp((char*)data,sizes);
    content += temp;

    return sizes;
}
我总是得到res1,这意味着在执行curl\u easy\u perform时出错,并且内容也是空的。 非常感谢您的帮助。
提前谢谢。

为什么要卷发?为什么是C?为什么不是java?为什么不使用ApacheHttpClient或HttpUrlConnection?我以前尝试过android webdav客户端的sardine和jackrabbit库,但遇到https问题。。。