我创建了一个简单的Web应用程序并将其托管在本地服务器(本地主机)上,并使用以下代码获取身份验证ID,但它返回403错误。还有什么方法可以在没有应用程序服务器的情况下向C2DM发送消息,我的意思是来自桌面应用程序吗?
这是获取身份验证密钥的代码:
string GetToken()
{
HttpWebResponse response = null;
try
{
StringBuilder builder = new StringBuilder();
builder.Append("Email=").Append("MyGmailEmailAddress");
builder.Append("&Passwd=").Append("MyPassword");
builder.Append("&accountType=GOOGLE");
builder.Append("&source=PingMe");
builder.Append("&service=ac2dm");
byte[] bytes = Encoding.UTF8.GetBytes(builder.ToString());
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ClientLogin");
request.Method = "POST";
request.ContentType ="application/x-www-form-urlencoded";
request.ContentLength = bytes.Length;
Stream stream = request.GetRequestStream();
stream.Write(bytes,0,bytes.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
return reader.ReadToEnd();
}
catch (Exception ex)
{
return ex.Message;
}
finally
{
if(response != null)
response.Close();
}
}
答案 0 :(得分:0)
人们强烈推荐C2DM的专用Google帐户。不要使用常规GMail。
另外,您是否已在http://code.google.com/android/c2dm/signup.html注册?如果是,尝试使用相同的Google帐户重新注册。那个网站是出了名的不可思议。