我使用“application / json”(下游HTTP消息(JSON))从我的C#服务器发送GCM。一切正常,我的Android设备会收到消息。
但问题是:如果我发送像äëé或类似的特殊字符,那么我会收到此错误:
WebException:System.Net.WebException:请求已中止: 请求已取消。 ---> System.IO.IOException:无法关闭流 直到写完所有字节。
我尝试使用:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="sort-list">
<li class="sort-item" data-event-date="14/02/2016">Valentine's Day</li>
<li class="sort-item" data-event-date="25/12/2016">Christmas</li>
<li class="sort-item" data-event-date="25/12/2016">New Years</li>
<li class="sort-item" data-event-date="14/06/2016">Bastille Day</li>
<li class="sort-item" data-event-date="01/01/2016">New Year's Day</li>
<li class="sort-item" data-event-date="31/10/2016">Halloween</li>
</ul>
然后我以错误的格式收到Android中的消息。 任何帮助如何正确编码字符串?
答案 0 :(得分:0)
我解决了改变:
using (StreamWriter oWriter = new StreamWriter(req.GetRequestStream()))
{ oWriter.Write(msg);
}
用这个:
Byte[] byteArray = Encoding.UTF8.GetBytes(msg);
req.ContentLength = byteArray.Length; <-- important
Stream writer = req.GetRequestStream();
writer.Write(byteArray, 0, byteArray.Length);
另见here