- char*
- curl_helper_url_escape (char* url, ...)
- {
- va_list arg_ptr;
- char* key_ptr = NULL;
- char* val_ptr = NULL;
- char* buf = NULL;
- size_t size = 0;
- if (!url)
- return NULL;
- va_start(arg_ptr, url);
- key_ptr = va_arg(arg_ptr, char*);
- val_ptr = va_arg(arg_ptr, char*);
- while (key_ptr && val_ptr)
- {
- char* ptr = (char*)curl_escape (val_ptr, strlen(val_ptr));
- if (!buf)
- {
- size = strlen(url) + strlen(key_ptr) + strlen(ptr) + 3;
- buf = (char*)malloc (size);
- sprintf (buf, "%s?%s=%s", url, key_ptr, ptr);
- }
- else
- {
- size = size + strlen(key_ptr) + strlen(ptr) + 2;
- buf = realloc (buf, size);
- sprintf (buf, "%s&%s=%s", buf, key_ptr, ptr);
- }
- free (ptr);
- key_ptr = va_arg(arg_ptr, char*);
- val_ptr = va_arg(arg_ptr, char*);
- }
- va_end(arg_ptr);
- return buf;
- }
一个构造url编码链接的函数
本文介绍了一个用于构建HTTP请求的URL编码辅助函数curl_helper_url_escape的实现细节。该函数接收原始URL和其他键值对参数,通过curl_escape函数对键值进行URL编码,并将它们附加到原始URL上形成完整的查询字符串。

被折叠的 条评论
为什么被折叠?



