假如需要返回结果数据如下图所示,如何通过HttpWebRequest请求url路径获得呢
本实例中演示如何通过Newtonsoft.Json实现结果数据的反序列化
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.IO;
using System.Xml.Linq;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace WebApplication8
{
public class ServiceManager
{
public static T GetStr<T>(string url)
{
string SerAadd = url;
XDocument doc;
HttpWebRequest request = WebRequest.Create(SerAadd) as HttpWebRequest;
try
{
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
string result = reader.ReadToEnd();
return SerializeKit.JsonDeserialize<T>(result);
}
}
catch (Exception e)
{
}
return default(T);
}
}
public static class SerializeKit
{
#region JsonSerialize
/// <summary>
///
/// </summary>
/// <param name="object"></param>
/// <returns></returns>
public static string JsonSerialize(object @object)
{
try
{
var serializer = new JavaScriptSerializer();
return serializer.Serialize(@object);
}
catch
{
return null;
}
}
#endregion
#region JsonDeserialize
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonString"></param>
/// <returns></returns>
public static T JsonDeserialize<T>(string jsonString)
{
try
{
var serializer = new JavaScriptSerializer();
return serializer.Deserialize<T>(jsonString);
}
catch
{
return default(T);
}
}
#endregion
}
public class ItemTypeMassageEntity
{
[JsonProperty("total")]
public int Total { get; set; }
[JsonProperty("data")]
public ItemTypeEntity[] Data { get; set; }
[JsonProperty("message")]
public string Message { get; set; }
[JsonProperty("code")]
public int Code { get; set; }
}
public class ItemTypeEntity
{
[JsonProperty("catalogId")]
public string CatalogId { get; set; }
[JsonProperty("catalogName")]
public string CatalogName { get; set; }
[JsonProperty("parentCatalogId ")]
public string ParentCatalogId { get; set; }
[JsonProperty("deptId ")]
public string DeptId { get; set; }
}
}
调用 ItemTypeMassageEntity itemTypeMassageEntity = ServiceManager.GetStr<ItemTypeMassageEntity>("");输入请求的url路径即可。