Преобразование из Java в C ++, что эквивалентно команде curl для setRequestProperty - PullRequest
0 голосов
/ 03 января 2012

Я пытаюсь преобразовать приложение 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-сервлета, которыйсбой (идентификатор равен нулю или пуст)

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

Какая команда эквивалентна setRequestProperty в cURL.

Я уверен, что упускаю что-то очевидное.

1 Ответ

2 голосов
/ 03 января 2012

Может быть, формат строки вашего заголовка отключен, как насчет:

curl_slist_append (заголовки, "UserID: 2");

ах, вам нужно присвоить результат, поэтому

headers = curl_slist_append (заголовки, "UserID: 2");

...