利用HttpWebRequest请求url路径返回json结果对象

本教程展示了如何利用HttpWebRequest从URL获取响应,并使用Newtonsoft.Json将接收到的JSON数据反序列化为对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如需要返回结果数据如下图所示,如何通过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路径即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值