FCM pu sh уведомление HTTPS post с использованием curl - PullRequest
0 голосов
/ 27 мая 2020

Я работаю над уведомлением FCM pu sh. когда я использую команду curl в linux, она работает нормально.

LD_LIBRARY_PATH=/usr/local/lib curl -X POST --header "Authorization: key=AA- ~~~ O7v_" --header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d '{"to" : "dFC ~~~ 7Lbl",  "notification" : {    "title" : "title",    "body" : "body"  }}'

в windows среде Visual C ++ (с использованием libcurld)

int main(void)
{
    CURL *curl;
    CURLcode res;
    std::string strTargetURL;
    std::string strHeader;
    std::string strResource;


    struct curl_slist *headerlist = nullptr;

    char *version = curl_version();
    curl_version_info_data *curlData = curl_version_info(CURLVERSION_LAST);

    strTargetURL = "https://fcm.googleapis.com/fcm/send";
    strHeader = "Authorization: key=AAA~~~O7v_ Content-Type: application/json";
    strResource = "{to : dFC~~~Lbl,  priority : high,  notification : {    title : title,    body : body  },  data : {    title : FG Title,    message : Foreground Message  }}";
    curl = curl_easy_init();
    if (curl)
    {
        curl_easy_setopt(curl, CURLOPT_VERBOSE, true);
        curl_easy_setopt(curl, CURLOPT_POST, true);
        curl_easy_setopt(curl, CURLOPT_HEADER, true);
        curl_easy_setopt(curl, CURLOPT_URL, strTargetURL.c_str());

        //curl_easy_setopt(curl, CURLOPT_RETURNTRANSFER, true);
        curl_easy_setopt(curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
        curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, strResource);
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, strHeader);

        res = curl_easy_perform(curl);

        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed : %s\n", curl_easy_strerror(res));

        curl_easy_cleanup(curl);
    }
    return 0;
}

я получил эту ошибку, когда я вызвал код.

  • СОСТОЯНИЕ: INIT => CONNECT handle 0x1ba22c7bd00; строка 1619 (соединение # -5000)
  • Добавлено соединение 0. Теперь кеш содержит 1 член
  • STATE: CONNECT => WAITRESOLVE handle 0x1ba22c7bd00; строка 1660 (соединение # 0)
  • Попытка 172.217.174.106:443...
  • СОСТОЯНИЕ: WAITRESOLVE => WAITCONNECT handle 0x1ba22c7bd00; строка 1739 (соединение # 0)
  • Подключено к fcm.googleapis.com (172.217.174.106) порт 443 (# 0)
  • STATE: WAITCONNECT => SENDPROTOCONNECT handle 0x1ba22c7bd00; строка 1795 (соединение № 0)
  • Помечено для [keep alive]: HTTP по умолчанию
  • ALPN, предлагая http / 1.1
  • список шифров с ошибкой настройки: ALL:! EXPORT: ! EXPORT40:! EXPORT56:! ANULL:! LOW:! RC4:@STRENGTH
  • Отмечено для [закрытия]: сбой HTTPS-соединения
  • multi_done
  • Закрытие подключения 0
  • Кэш теперь содержит 0 членов
  • Срок действия очищен (передача 0x1ba22c7bd00)

может ли кто-нибудь найти решение?

...