我尝试研究类似的线程,但似乎找不到解决问题的方法。
我有ASP.NET WEB API和客户端UWP应用程序,可通过该API与本地数据库通信。
以下是获取数据的代码(客户端应用):
using (var client = new HttpClient())
{
var response = "";
Task task = Task.Run(async () =>
{
response = await client.GetStringAsync(App.BaseUri); // sends GET request
});
task.Wait(); // Wait
List<Product> ProductList = JsonConvert.DeserializeObject<List<Product>>(response); //ERROR HERE XX
listViewAPI.ItemsSource = ProductList; // Bind the list
}
我在App文件中的BaseUri看起来像这样:
public static Uri BaseUri = new Uri("http://localhost:58834/api/Product/"); // base API URL; ProductController
这是API中的控制器:
using ASPNetWebAPI.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace ASPNetWebAPI.Controllers
{
[Route("api/Product")]
public class ProductController : ApiController
{
// GET: api/product
[HttpGet]
public IEnumerable<Product> Get()
{
return Model.ReadAllSQLProducts();
}
}
}
这是API中的模型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ASPNetWebAPI.Models
{
public class Model
{
// Example data source
private static List<Product> products = new List<Product>()
{
};
// R part of CRUD
public static List<Product> ReadAllSQLProducts()
{
return products;
}
}
}
这是API中的实际产品类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ASPNetWebAPI.Models
{
public class Product
{
public int Id { get; set; }
public string CreationDate { get; set; }
public string Name { get; set; }
public string Category { get; set; }
}
}
这是API Web.config的连接字符串:
<configuration>
<connectionStrings>
<add name="ProductConn" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ProductDB;Integrated Security=True;MultipleActiveResultSets=True"/>
</connectionStrings>
...
</configuration>
由于我在本地主机中有多个数据库,因此我在connectionstring中明确告诉要连接的数据库。
我无法解决以下错误:
引发的异常:Newtonsoft.Json.dll中的'Newtonsoft.Json.JsonReaderException' Newtonsoft.Json.dll中发生了类型为'Newtonsoft.Json.JsonReaderException'的异常,但未在用户代码中处理 解析值<时遇到意外字符。路径”,第0行,位置0。