收到(400)错误的请求。尝试发送GCM消息时

asmgx

我正在尝试通过C#.net将消息发送到GCM服务器

我找到了一个很好的例子,我正在尝试使用

http://www.codewithasp.net/2015/11/send-message-gcm-c-sharp-single-multiple.html

问题是我收到“远程服务器返回错误:(400)错误的请求。” 每当我尝试从此行获取响应时发生错误

            WebResponse wResponse = wRequest.GetResponse();

我试图找到问题所在,将API代码从服务器更改为Android,再更改为浏览器,结果为(400)错误的请求或(401)未经授权。

不确定我在这里做错了什么,在示例中看起来非常简单直接。

非常感谢帮助

这是代码

        NotificationManager nm = new NotificationManager();
        List<string> ls = new List<string>(new string[] { "ABCDEFGHIJKLMNOPQRSTUVWXYZ" });

        nm.SendNotification(ls, " Hi.. This is a test","Hi.. Title",1);

这是课程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Net;
using System.Text;
using System.IO;

namespace WebApplication1
{

    public class NotificationManager
    {
        private class NotificationMessage
        {
            public string Title;
            public string Message;
            public long ItemId;
        }

        public NotificationManager()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public string SendNotification(List<string> deviceRegIds, string message, string title, long id)
        {
            try
            {
                string regIds = string.Join("\",\"", deviceRegIds);

                string AppId = "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
                var SenderId = "1234567890";

                NotificationMessage nm = new NotificationMessage();
                nm.Title = title;
                nm.Message = message;
                nm.ItemId = id;

                var value = new JavaScriptSerializer().Serialize(nm);
                WebRequest wRequest;
                wRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
                wRequest.Method = "post";
                wRequest.ContentType = " application/json;charset=UTF-8";
                wRequest.Headers.Add(string.Format("Authorization: key={0}", AppId));

                wRequest.Headers.Add(string.Format("Sender: id={0}", SenderId));

                string postData = "{\"collapse_key\":\"score_update\",\"time_to_live\":108,\"delay_while_idle\":true,\"data\": { \"message\" : " + "\"" + value + "\",\"time\": " + "\"" + System.DateTime.Now.ToString() + "\"},\"registration_ids\":[\"" + regIds + "\"]}";

                Byte[] bytes = Encoding.UTF8.GetBytes(postData);
                wRequest.ContentLength = bytes.Length;

                Stream stream = wRequest.GetRequestStream();
                stream.Write(bytes, 0, bytes.Length);
                stream.Close();

                WebResponse wResponse = wRequest.GetResponse();

                stream = wResponse.GetResponseStream();

                StreamReader reader = new StreamReader(stream);

                String response = reader.ReadToEnd();

                HttpWebResponse httpResponse = (HttpWebResponse)wResponse;
                string status = httpResponse.StatusCode.ToString();

                reader.Close();
                stream.Close();
                wResponse.Close();

                if (status == "")
                {
                    return response;
                }
                else
                {
                    return "";
                }
            }
            catch( Exception ex)
            {
                return ex.ToString();
            }
        }
    }
}

这是我获取API ID和发件人ID的方法

发件人ID

API ID

尼基尔·高尔(Nikhil gaur)

我是您引用的本网站的作者。感谢您指出错误,实际上问题出在postData字符串中。我们将值用双引号括起来(“ like this”),但这是一个json字符串,因此我们不需要这样做。只需删除postData字符串中值的双引号,它将为您工作。

所以只要改变这个

string postData = "{\"collapse_key\":\"score_update\",\"time_to_live\":108,\"delay_while_idle\":true,\"data\": { \"message\" : " + "\"" + value + "\",\"time\": " + "\"" + System.DateTime.Now.ToString() + "\"},\"registration_ids\":[\"" + regIds + "\"]}";

对此

string postData = "{\"collapse_key\":\"score_update\",\"time_to_live\":108,\"delay_while_idle\":true,\"data\": { \"message\" : " + value + ",\"time\": " + "\"" + System.DateTime.Now.ToString() + "\"},\"registration_ids\":[\"" + regIds + "\"]}";

到此为止。

我还更正了链接的帖子,以使其他访问者可能不会遇到相同的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

收到(400)错误的请求。尝试发送GCM消息时

来自分类Dev

尝试发送 POST 请求时收到 404 错误

来自分类Dev

尝试发送帖子并总是收到错误的请求

来自分类Dev

尝试从我的Twilio号码向我的电话号码发送消息时收到以下错误

来自分类Dev

Python在发送请求时收到超时错误

来自分类Dev

jQuery $ .ajax通过发送POST接收到400错误请求

来自分类Dev

创建用户时收到错误请求失败请求400(Firebase)

来自分类Dev

当我尝试通过访存与Api连接时,为什么会收到“错误请求”错误400?

来自分类Dev

尝试创建XML文件时,我不断收到错误消息

来自分类Dev

尝试在Python中打破while循环时收到错误消息

来自分类Dev

尝试运行serve -s build时收到错误消息

来自分类Dev

尝试在Python中打破while循环时收到错误消息

来自分类Dev

尝试计算 p_value 时收到错误消息

来自分类Dev

尝试执行存储过程时,我不断收到错误消息

来自分类Dev

使用python发送消息时出现错误400

来自分类Dev

通过TCP套接字发送手工制作的HTTP请求时,为什么会收到HTTP 400错误请求响应?

来自分类Dev

尝试使用“ http:// localhost:61961 / Token”登录到Web API。收到400错误的请求错误

来自分类Dev

POST方法在被请求时不断发送400个错误

来自分类Dev

尝试通过Twilio发送消息时遇到奇怪的错误

来自分类Dev

尝试启动服务时,etcd错误拒绝发送消息

来自分类Dev

尝试启动服务时,etcd错误拒绝发送消息

来自分类Dev

尝试使用twilio发送消息时发生致命错误

来自分类Dev

发出S3 GET请求时收到400错误的请求

来自分类Dev

使用php发送GET请求时出现HTTP 400错误请求错误

来自分类Dev

Android GCM消息已成功发送但未收到

来自分类Dev

发送 GCM Upstream Message 后收到空推送消息

来自分类Dev

Twilio-在收到SMS消息时将HTTP请求发送到端点

来自分类Dev

Twilio-在收到SMS消息时将HTTP请求发送到端点

来自分类Dev

当我尝试使用Swagger在AngularJS上构建发布请求时收到错误的请求

Related 相关文章

  1. 1

    收到(400)错误的请求。尝试发送GCM消息时

  2. 2

    尝试发送 POST 请求时收到 404 错误

  3. 3

    尝试发送帖子并总是收到错误的请求

  4. 4

    尝试从我的Twilio号码向我的电话号码发送消息时收到以下错误

  5. 5

    Python在发送请求时收到超时错误

  6. 6

    jQuery $ .ajax通过发送POST接收到400错误请求

  7. 7

    创建用户时收到错误请求失败请求400(Firebase)

  8. 8

    当我尝试通过访存与Api连接时,为什么会收到“错误请求”错误400?

  9. 9

    尝试创建XML文件时,我不断收到错误消息

  10. 10

    尝试在Python中打破while循环时收到错误消息

  11. 11

    尝试运行serve -s build时收到错误消息

  12. 12

    尝试在Python中打破while循环时收到错误消息

  13. 13

    尝试计算 p_value 时收到错误消息

  14. 14

    尝试执行存储过程时,我不断收到错误消息

  15. 15

    使用python发送消息时出现错误400

  16. 16

    通过TCP套接字发送手工制作的HTTP请求时,为什么会收到HTTP 400错误请求响应?

  17. 17

    尝试使用“ http:// localhost:61961 / Token”登录到Web API。收到400错误的请求错误

  18. 18

    POST方法在被请求时不断发送400个错误

  19. 19

    尝试通过Twilio发送消息时遇到奇怪的错误

  20. 20

    尝试启动服务时,etcd错误拒绝发送消息

  21. 21

    尝试启动服务时,etcd错误拒绝发送消息

  22. 22

    尝试使用twilio发送消息时发生致命错误

  23. 23

    发出S3 GET请求时收到400错误的请求

  24. 24

    使用php发送GET请求时出现HTTP 400错误请求错误

  25. 25

    Android GCM消息已成功发送但未收到

  26. 26

    发送 GCM Upstream Message 后收到空推送消息

  27. 27

    Twilio-在收到SMS消息时将HTTP请求发送到端点

  28. 28

    Twilio-在收到SMS消息时将HTTP请求发送到端点

  29. 29

    当我尝试使用Swagger在AngularJS上构建发布请求时收到错误的请求

热门标签

归档