libcurl和特殊字符转换

时间:2013-01-09 13:14:54

标签: c http libcurl

我正在使用libcurl来提供HTTP GET和PUT请求 请求包含登录名,密码和一些其他信息。

密码包含@ symbol - 1qa @ WS#ED 查询按以下方式创建

snprintf(api_req, sizeof(api_req), "http://%s:%s@%s/export?uuid=%s",\
XEN.user_name,XEN.user_passwd, XEN.host_ip, BACKUP_TASK.vm_uuid)

http://root:1qa@WS#ED@192.168.1.1/export?uuid=4851501f-82d5-cb73-3158-175cffbbf848

当然,此请求将失败,因为@ shoul应转换为%40,也适用于':',点,百分号等 但这是任何操作系统和用户帐户的OK密码。 处理此类问题的最佳方法是什么?使用replacemnents解析每个符号的字符串符号似乎不是很有效。 我正在使用普通的C

1 个答案:

答案 0 :(得分:2)

使用curl_easy_escape()转义密码中的字符。