首页 > 代码库 > 特殊的Josn格式

特殊的Josn格式

 static void Main(string[] args)
        {
            YtRequest<RequestHead, RequestBody> Ytrequest = new YtRequest<RequestHead, RequestBody>
            {
                head = new RequestHead
                {
                    version="1.0",
                    product="B10002",
                    merchant="201511043830",
                    outOrderId = "110000000000005",
                    memo="备注信息",
                },
                body = new RequestBody
                {
                    name_card="",
                    id_card="",
                },
            };

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            var prestr = serializer.Serialize(Ytrequest);
            string mysign = Sign(prestr, "N75tkwmnHV1UjZ60YAGK", "utf-8");

            YtSendModel<RequestHead, RequestBody> Ytsend = new YtSendModel<RequestHead, RequestBody>
            {
                request = new YtRequest<RequestHead, RequestBody>
                {
                    head = new RequestHead
                    {
                        version = "1.0",
                        product = "B10002",
                        merchant = "201511043830",
                        outOrderId = "123456",
                        memo = "连连实名认证",
                    },
                    body = new RequestBody
                    {
                        name_card = "min",
                        id_card = "141002465",
                    },
                },
                sign="12321435636",
            };

            string strRequestData = http://www.mamicode.com/serializer.Serialize(Ytsend);

            Encoding enconding = Encoding.GetEncoding("utf-8");

            byte[] bytedata = http://www.mamicode.com/enconding.GetBytes(strRequestData);


            HttpWebRequest re = (HttpWebRequest)HttpWebRequest.Create("https://api.udcredit.com/api/credit/v1/get_nauth");
            re.Method = "post";
            re.ContentType = "application/json";

            re.ContentLength = bytedata.Length;
            Stream requestStream = re.GetRequestStream();
            requestStream.Write(bytedata, 0, bytedata.Length);
            requestStream.Close();

            HttpWebResponse httpResponse = (HttpWebResponse)re.GetResponse();
            Stream myStream = httpResponse.GetResponseStream();

            StreamReader reader = new StreamReader(myStream, enconding);
            StringBuilder responseData = http://www.mamicode.com/new StringBuilder();

            String line;
            while ((line = reader.ReadLine()) != null)
            {
                responseData.Append(line);
            }

            //释放
            myStream.Close();

            string strResult = responseData.ToString();

      
        }

        static  string Sign(string str,string key,string charset)
        {
            str=str+key;
            var sb=new StringBuilder(32);
            MD5 md5=new MD5CryptoServiceProvider();
            var arr=md5.ComputeHash(Encoding.GetEncoding(charset).GetBytes(str));
            foreach (var item in arr)
            {
                sb.Append(item.ToString("x").PadLeft(2, ‘0‘));
            }
            return sb.ToString();
        }

建一个YtSendModel.cs 

public class YtSendModel<Head ,Body>
    {
       public YtRequest<Head, Body> request { get; set; }
       public string sign { get; set; }
    }
   public class YtRequest<Head, Body>
   {
       public Head head { get; set; }
       public Body body { get; set; }
   }
    public class RequestHead
    {
        public string version { get; set; }
        public string product { get; set; }
        public string merchant { get; set; }
        public string outOrderId { get; set; }
        public string memo { get; set; }
    }
    public class RequestBody
    {
        public string name_card { get; set; }
        public string id_card { get; set; }
    }

 

特殊的Josn格式