从java转换为c ++,setRequestProperty的等效curl命令是什么

时间:2012-01-03 02:56:09

标签: java c++ curl curlpp

我正在尝试将Java应用程序转换为C ++,我正在使用cURL来处理我的请求。 下面是java代码;我想知道如何复制connection.setRequestProperty()方法。

connection = (HttpURLConnection) url.openConnection();
connection.setInstanceFollowRedirects(false); 
connection.setReadTimeout(10000);
String userId= =getUserId()
connection.setRequestProperty("UserID", userId);

以下是我目前无效的代码。

struct curl_slist *headers=NULL;
curl_slist_append(headers, "UserID="2"); 

curl_easy_setopt(curl,CURLOPT_HTTPHEADER,headers); 
curl_easy_setopt(curl, CURLOPT_URL,url.c_str());
curl_easy_setopt(curl,CURLOPT_SSLVERSION, CURL_SSLVERSION_SSLv3);
curl_easy_setopt(curl, CURLOPT_CAINFO, certDataPath.c_str());
CURLcode c =curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, postRequestCallback); 

下面是失败的java servlet代码(id为null或为空)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException {
...
...
String ud = request.getHeader("UserID");
}

cURL中setRequestProperty的等效命令是什么。

我确信我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

你的标题字符串格式可能会关闭,如何:

curl_slist_append(标题,“UserID:2”);

啊,你需要分配结果,所以

headers = curl_slist_append(标题,“UserID:2”);