Newtonsoft.Json.JsonReaderException MobileServicesClient RegisterAsync
Posted
技术标签:
【中文标题】Newtonsoft.Json.JsonReaderException MobileServicesClient RegisterAsync【英文标题】: 【发布时间】:2018-07-12 05:34:42 【问题描述】:我一直关注那里的教程,我想出了这个......
这是一种设备注册方法,使用 Microsoft.WindowsAzure.MobileServices.MobileServiceClient.RegisterAsync,它应该向服务器发送设备令牌并注册到 Azure 通知中心。
这是我的代码:
async Task SendRegistrationToServerAsync(NSData deviceToken)
// This is the template/payload used by ios. It contains the "messageParam"
// that will be replaced by our service.
const string templateBodyAPNS = "\"aps\":\"alert\":\"$(messageParam)\"";
var templates = new JObject();
templates["genericMessage"] = new JObject
"body", templateBodyAPNS
;
var token = deviceToken.Description.Trim('<', '>').Replace(" ", "").ToUpperInvariant();
var client = new MobileServiceClient(App.MobileServiceUrl);
var push = client.GetPush();
// token = "530FE16E53C9BCC93FC41C3A1AFB6FCE41F9078F1AC82D1C70B019E3B798CDD6"
// Error Happens Here - Line Below
await push.RegisterNativeAsync(token);
投掷
Newtonsoft.Json.JsonReaderException 解析值时遇到意外字符:
【问题讨论】:
具体哪一行会报错?你解析的数据是什么样的? 等待 push.RegisterNativeAsync(token); 解析字符串 字符串的内容是什么?它是有效的 json 吗? 我正在将这个字符串值传递给一个函数——我找不到它的代码(它在一个 nugget 包中),它的数据是 530FE16E53C9BCC93FC41C3A1AFB6FCE41F9078F1AC82D1C70B019E3B798CDD6" 【参考方案1】:您的字符串中似乎有一些不需要的字符。 请尝试以下代码:
var DeviceToken = deviceToken.Description;
if (!string.IsNullOrWhiteSpace(DeviceToken))
DeviceToken = DeviceToken.Trim('<').Trim('>');
如果有帮助请告诉我:)
【讨论】:
我已经删除了 '',并且 DeviceToken 不为空。所以我不完全确定它是否与不需要的字符有关,因为我可以将设备令牌作为 NSData 直接传递到 RegisterNativeAsync 这行返回什么?var push = client.GetPush();
??
它从mobileserviceclient返回推送对象,我这行没有任何问题,只有当我尝试push.RegisterNativeAsync()时以上是关于Newtonsoft.Json.JsonReaderException MobileServicesClient RegisterAsync的主要内容,如果未能解决你的问题,请参考以下文章