我试图使用Xamarin Azure Mobile Services Component 1.1.0的“InvokeApiAsync”方法,如下所述:
var result = await _nativeClient.InvokeApiAsync ("insertsample", HttpMethod.Post, null);
我得到一个例外说:
{Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: O. Path '', line 0, position 0.
at Newtonsoft.Json.JsonTextReader.ParseValue () [0x00000] in <filename unknown>:0
at Newtonsoft.Json.JsonTextReader.ReadInternal () [0x00000] in <filename unknown>:0
at Newtonsoft.Json.JsonTextReader.Read () [0x00000] in <filename unknown>:0
at Newtonsoft.Json.Linq.JToken.ReadFrom (Newtonsoft.Json.JsonReader reader) [0x00000] in <filename unknown>:0
at Newtonsoft.Json.Linq.JToken.Load (Newtonsoft.Json.JsonReader reader) [0x00000] in <filename unknown>:0
at Newtonsoft.Json.Linq.JToken.Parse (System.String json) [0x00000] in <filename unknown>:0
at Microsoft.WindowsAzure.MobileServices.StringExtensions.ParseToJToken (System.String response) [0x00000] in <filename unknown>:0
at Microsoft.WindowsAzure.MobileServices.MobileServiceClient+<InvokeApiAsync>d__6.MoveNext () [0x00000] in <filename unknown>:0
有关如何解决此问题的任何指示?
提前致谢!
答案 0 :(得分:1)
InvokeApiSync的默认重载需要JSON响应。听起来你没有回来。试试这个:
exports.post = function(request, response) {
response.send(200, {}); // note the empty JSON object
}
或者,如果您不希望返回JSON,则可以使用不同的InvokeApiAsync重载来返回HttpResponseMessage,然后根据需要解析响应。
答案 1 :(得分:0)
在返回从文件中读取的JSON时,我遇到了类似的问题。它存储为UTF-8,但也有BOM(0xEF,0xBB,0xBF)。 JSON.NET并不期望它,因此您会收到“意外字符”错误。
确保剥离BOM(如果存在)。