【发布时间】:2016-01-11 03:09:03
【问题描述】:
我正在使用解析来发送推送消息。我创建了一个简单的工具来允许管理员向用户发送消息。
此函数工作正常,当我将“Você recebeu uma mensagem”之类的字符串传递给 pushMessage 变量时会出现问题。这是因为我使用了字符“^”。如果我在解析推送面板中使用相同的字符串,则会发送消息。
如何在 C# 中解析字符串以防止出现此问题?
Parse.cs
private bool PushNotification(string pushMessage, string title, string canais)
{
bool isPushMessageSend = false;
string postString = "";
string urlpath = "https://api.parse.com/1/push";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(urlpath);
/*postString = "{ \"channels\":"+ canais +", " +
"\"data\" : {\"alert\":\"" + pushMessage + "\"}" +
"}";*/
/* postString = "{ \"channels\":"+ canais +", " +
"\"data\": {\"message\": \"" + pushMessage + "\",\"title\": \"" + title + "\",\"is_background\": false}}";*/
postString = "{ \"channels\":" + canais + ", " +
"\"data\": {\"data\": {\"message\": \""+pushMessage+"\",\"title\": \""+title+"\"},\"is_background\": \"false\"}}";
httpWebRequest.ContentType = "application/json";
httpWebRequest.ContentLength = postString.Length;
httpWebRequest.Headers.Add("X-Parse-Application-Id", "xxxxxxxxxxxxxx");
httpWebRequest.Headers.Add("X-Parse-REST-API-KEY", "xxxxxxxxxxxxxxx");
httpWebRequest.Method = "POST";
StreamWriter requestWriter = new StreamWriter(httpWebRequest.GetRequestStream());
requestWriter.Write(postString);
requestWriter.Close();
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
try
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
if(responseText.Contains("true"))
{
MessageBox.Show("Mensagem enviada com sucesso");
}
}
}catch(Exception e)
{
MessageBox.Show("Problema ao enviar mensagem\nErro:"+e.ToString());
}
reset();
return isPushMessageSend;
}
【问题讨论】:
-
在请求中发送之前,您是否尝试过对字符串进行编码?
-
@Alexander 不,我该怎么做?
-
您能否进一步澄清这个问题?是不是 parse 不接受变音符号^?
-
@Ghasan 使用 "~" "´" "º" "^" 等字符时会出现问题,这在葡萄牙语中用于发送消息
标签: c# parse-platform