4

ASP.NET バックエンドを備えた Android アプリケーションがあります。電話の registration_id と、プッシュを実行しているアプリケーション サーバーの Google からの認証トークンがあります。

電話がメッセージを受け取るように C2DM に http 投稿要求を行うと、401 Unauthorized が引き続き表示されます。.NET でリクエストを行う方法は次のとおりです。

    WebRequest myRequest = WebRequest.Create("https://android.apis.google.com/c2dm/send");
    myRequest.ContentType = "application/x-www-form-urlencoded";
    myRequest.Method = "POST";
    myRequest.Headers.Add("Authorization", "GoogleLogin auth=" + authId);
    // buiold the post string
    StringBuilder myPost = new StringBuilder();
    myPost.AppendFormat("registration_id={0}", regId);
    myPost.AppendFormat("&data.payload={0}", msg);
    myPost.AppendFormat("&collapse_key={0}", colKey);

    // write the post-string as a byte array
    byte[] myData = ASCIIEncoding.ASCII.GetBytes(myPost.ToString());
    myRequest.ContentLength = myData.Length;
    Stream myStream = myRequest.GetRequestStream();
    myStream.Write(myData, 0, myData.Length);
    myStream.Close();
    // Do the actual request and read the response stream
    WebResponse myResponse = myRequest.GetResponse();
    Stream myResponseStream = myResponse.GetResponseStream();
    StreamReader myResponseReader = new StreamReader(myResponseStream);
    string strResponse = myResponseReader.ReadToEnd();
    myResponseReader.Close();
    myResponseStream.Close();

どんな助けでも大歓迎です。

4

3 に答える 3

4

アドバイスコーナー: たまには自分のコードに自信を持ってください! そして、Google でさえ時々失敗します。

Google OAuth と C2DM に関するすべてのブログ投稿と記事を約 9 時間読み、コードでさまざまなことを試した後、Google にメールを送信しました。非常に迅速に応答を受け取っただけでなく、アカウントが台無しになっていたことにも興奮しています。彼らのサイトに登録しているときに問題が発生し、受信した登録成功メールからすべてが機能しているように見えましたが、そうではありませんでした. 私は再登録し、すべてが動作します!

于 2010-09-21T21:13:33.953 に答える
2

同様の問題が発生しました。Google c2dm (クラウドからデバイスへのメッセージング) コード サンプルを試行中に、エラー 401 "Unauthorized" が発生しました。以前は例がそのまま機能していたように見えますが、Google が条件を変更しました。コード例を実行する前に、サインアップする必要があります。

http://code.google.com/android/c2dm/signup.html

サインアップすると、数分で機能し始めました。

于 2011-05-16T14:31:12.760 に答える
0

同じ問題が発生しました。つまり、突然 C2DM_ACCOUNT_EMAIL が機能しなくなりました。

この問題を解決するには、登録に同じ情報と同じ C2DM_ACCOUNT_EMAIL を入力してください。

HTH

于 2011-06-05T09:47:47.137 に答える