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

问题描述:

我试图将Java应用程序转换为C++,我使用cURL来处理我的请求。 下面是java代码;我想知道如何复制connection.setRequestProperty()方法。从java转换为C++,setRequestProperty的等效curl命令是什么

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); 

下面是失败(ID为空或空)

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

什么是当量命令在卷曲setRequestProperty一个在Java servlet代码。

我确定我缺少一些明显的东西。

可能是您的标题字符串格式是关闭的,怎么样:

curl_slist_append(标题, “用户ID:2”);

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

标题= curl_slist_append(头, “用户名:2”);

+0

好的,我试过curl_slist_append(headers,“UserID:2”);不幸的是结果相同 – user1127081 2012-01-03 03:16:49

+0

headers = curl_slist_append(headers,“UserID:2”); - 解决了我的问题,谢谢 – user1127081 2012-01-03 18:10:56