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 に変換する必要があるため、この要求は失敗します。また、「:」、ドット、パーセント記号なども同様ですが、これはどの OS およびユーザー アカウントでも OK のパスワードです。そのような問題を処理するための最良の方法は何ですか? replacemnents を使用してシンボルごとに文字列シンボルを解析することは、あまり効果的ではないようです。プレーンCを使用しています

4

1 に答える 1

2

curl_easy_escape()を使用して、パスワードの文字をエスケープします。

于 2013-01-09T13:22:33.137 に答える