【问题标题】:unicode characters are missing on sending gcm push notifications发送 gcm 推送通知时缺少 unicode 字符
【发布时间】:2015-05-22 17:19:29
【问题描述】:

我正在使用我的 c# 代码中的 gcm 发送推送通知。当我用英文发送数据时,它工作正常。但是,当数据中有任何 unicode 印地语字符时,我在 android 设备上得到的 json 中就会丢失它。请帮助我解决这个问题。我的代码如下-

 public string SendNotification(string deviceId, string message)
    {

        var value = message;
        WebRequest tRequest;
        tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
        tRequest.Method = "post";
        tRequest.ContentType = " application/x-www-form-urlencoded;charset=unicode UTF-8";
        tRequest.Headers.Add(string.Format("Authorization: key={0}", GoogleAppID));

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

        string postData = "delay_while_idle=1&data.data=" + value + "&registration_id=" + deviceId + "";
        Console.WriteLine(postData);
        Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        tRequest.ContentLength = byteArray.Length;

        Stream dataStream = tRequest.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        WebResponse tResponse = tRequest.GetResponse();

        dataStream = tResponse.GetResponseStream();

        StreamReader tReader = new StreamReader(dataStream);

        String sResponseFromServer = tReader.ReadToEnd();

        tReader.Close();
        dataStream.Close();
        tResponse.Close();
        return sResponseFromServer;
    }

【问题讨论】:

    标签: c# android asp.net unicode


    【解决方案1】:

    分析代码后才知道是编码的问题。然后通过在我的代码中更改以下行-

     string postData = "delay_while_idle=1&data.data=" + value + "&registration_id=" + deviceId + ""; 
    

     string postData = "delay_while_idle=1&data.data=" +  HttpUtility.UrlEncode(value) + "&registration_id=" + deviceId + "";
    

    它工作正常。我在这里发布它是因为我认为它可能会帮助其他有此类问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 2017-01-08
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      相关资源
      最近更新 更多