0

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

密码包含@符号 - 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

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

4

1 回答 1

2

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

于 2013-01-09T13:22:33.137 回答