如何在asp.net mvc 4中从外部rest完整web服务获取json数据
我试图从外部rest url()获取json数据,并将其显示在asp.net mvc应用程序的网页上。为此,我编写了一些代码,例如 控制者---如何在asp.net mvc 4中从外部rest完整web服务获取json数据,json,asp.net-mvc,Json,Asp.net Mvc,我试图从外部rest url()获取json数据,并将其显示在asp.net mvc应用程序的网页上。为此,我编写了一些代码,例如 控制者--- namespace mymvcapapplication.Controllers { 公共类EmployeeController:控制器 { 字符串Baseurl=”http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3"; 公共异步任务S
namespace mymvcapapplication.Controllers
{
公共类EmployeeController:控制器
{
字符串Baseurl=”http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";
公共异步任务StateDetails()
{
List listStateInfo=新列表();
使用(var client=new HttpClient())
{
client.BaseAddress=新Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
HttpResponseMessage Res=wait client.GetAsync(Baseurl);
如果(Res.IsSuccessStatusCode)
{
//存储从web api接收的响应详细信息
var statesponse=Res.Content.ReadAsStringAsync().Result;
//反序列化从web api接收的响应并存储到员工列表中
listStateInfo=JsonConvert.DeserializeObject(StateResponse);
}
返回视图(listStateInfo);
}
}
}
}
模型----
名称空间mymvcapapplication.Models
{
公共阶级国家
{
public int ObjectID{get;set;}
公共字符串StateName{get;set;}
公共整数黑色{get;set;}
公共整数填充{get;set;}
}
}
调试代码时出现错误:"Newtonsoft.Json.JsonReaderException:解析值时遇到意外字符:将url替换为
http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3?f=pjson
获取web服务的json版本将url替换为http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3?f=pjson
要获取web服务的json版本如果您将该url放入chrome,它将返回一个html页面,而不是json。它似乎还希望您登录或传递身份验证令牌。你有这两种吗?如果你只是把这个url放到chrome中,它会返回一个html页面而不是json。它似乎还希望您登录或传递身份验证令牌。你有这两种吗?您也没有在代码中传递。
namespace MyMVCApplication.Controllers
{
public class EmployeeController : Controller
{
string Baseurl = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer/3";
public async Task<ActionResult> StateDetails()
{
List<State> listStateInfo = new List<State>();
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage Res = await client.GetAsync(Baseurl);
if (Res.IsSuccessStatusCode)
{
//Storing the response details recieved from web api
var StateResponse = Res.Content.ReadAsStringAsync().Result;
//Deserializing the response recieved from web api and storing into the Employee list
listStateInfo = JsonConvert.DeserializeObject<List<State>>(StateResponse);
}
return View(listStateInfo);
}
}
}
}
Model----
namespace MyMVCApplication.Models
{
public class State
{
public int ObjectID { get; set; }
public string StateName { get; set; }
public int Black { get; set; }
public int Population { get; set; }
}
}