Я пытаюсь использовать libcurl в C ++ для отправки запросов на URL.Когда я настраиваю запрос в командной строке с помощью curl, кажется, что он работает нормально:
curl -vvv -X POST -H "Authorization: <api key here>" -H "Content-Type:application/json" "<host>" --data-binary '<json data here>'
Ответ начинается примерно так:
> POST <host> HTTP/1.1
> Host: <host>
> User-Agent: curl/7.61.1
> Accept: */*
> Authorization: <api_key>
> Content-Type:application/json
> Content-Length: 80
Так что я могу видеть авторизациюотправляется правильно.
Когда я пытаюсь сделать подобное в C ++, используя библиотеку libcurl C, я не замечаю ">" перед заголовками запроса:
Код:
struct curl_slist *chunk = NULL;
chunk = curl_slist_append(chunk, "Authorization: <api_key>");
chunk = curl_slist_append(chunk, "Content-Type:application/json");
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_URL, "<host>");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "<json>");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
Ответ:
> POST <host> HTTP/1.1
Host: <host>
Accept: */*
Authentication: <api_key>
Content-Type:application/json
Content-Length: 97
Так что я даже не уверен, правильно ли обрабатываются или принимаются заголовки хостом.
Есть идеи?
Я получаю следующий ответ:
{
"message": "No authorization header given",
"code": 401
}