каждый раз, когда я хочу отправить push-уведомление в свою ячейку, я получаю 302 Moved Error от серверов Google. Он говорит, что он переехал на www.google.com Это не кажется правильным. Итак, у меня есть следующая информация:
- Я сижу за прокси, но я попробовал это также без прокси. Без эффекта.
- Метод командной строки CUrl отлично работает
- Получение токена авторизации с серверов Google работает нормально
- Изменение токена аутентификации, который я хочу отправить, не имеет никакого реального эффекта (изменение последних 3-4 символов)
- Отправка без идентификатора регистрации не имеет никакого эффекта
Вот код, который отправляет push-уведомление:
QString headerStr = QString("GoogleLogin auth=") + m_authCode;
qDebug(qPrintable(headerStr));
QUrl url;
url.addQueryItem("registration_id", m_pRegCode->text());
url.addQueryItem("collapse_key", "0");
url.addQueryItem("data.message", "data");
qDebug("%s", qPrintable(url.toString()));
qDebug("%s", qPrintable(QString(url.encodedQuery())));
QByteArray data;
data = url.encodedQuery();
QUrl header("https://android.apis.google.com/c2dm/send");
QNetworkRequest req(header);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded;charset=UTF-8");
req.setHeader(QNetworkRequest::ContentLengthHeader, data.length());
req.setRawHeader(QByteArray("Authorization"), headerStr.toAscii());
qDebug("%s", qPrintable(req.url().toString()));
m_pPushRep = m_pManager->post(req, data);
Я получаю ответ:
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com">here</A>.
</BODY></HTML>
Что я делаю не так?
Редактировать: На самом деле решение было довольно простым: у меня был пробел в конце идентификатора аутентификации. Это на самом деле привело к ошибке. Так что для всех, кто читает это в далеком будущем: ПРОВЕРЬТЕ КОД АУТЕНТИФИКАЦИИ!