0
每次我想發送一個推送通知到我的單元格,我從Google服務器得到302移動錯誤。它說,它轉移到www.google.com。這看起來不正確。所以我有以下信息:Android的c2dm 302 HTTP錯誤
- 我坐在一個代理後面,但我也沒有代理嘗試過。沒有效果。
- 捲曲的命令行方式工作正常
- 接收從谷歌服務器的身份驗證令牌工作正常
- 更改身份驗證令牌我想送也沒有真正的影響(改變最後3-4個字符)
- 沒有發送註冊ID沒有效果
下面是代碼,發送推送通知:
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>
我在做什麼錯?
編輯:解決方案其實很簡單:我的身份驗證ID末尾有一個空格。這實際上導致了錯誤代碼。因此,對於在遙遠的將來閱讀此內容的所有人:請檢查您的認證代碼!
感動暫時...這可能意味着Google有維護。 – Rolice 2011-12-29 15:41:10
這看起來不合法。它可以在命令行上與CUrl正常工作。所以我認爲Google服務器沒問題。 – muma 2011-12-29 15:50:26