接口的調用和返回值的處理(Post請求)


首先是post請求的調用,調用對方的接口首先要得到對方的url,和需要傳入的參數,下面是一個簡單的post請求

            WebClient client = new WebClient();
            client.Headers.Add("Content-Type", "application/json");
            Encoding enc = Encoding.GetEncoding("UTF-8");
            //通過json的方式傳遞數據
            var datajson = new JavaScriptSerializer().Serialize(
                new
                {
                    serviceId = "3c.park.queryparkplacelist",
                    requestType = "DATA",
                    attributes = new
                    {
                        parkCode = "g3v3_1",
                        placeType = "SALE",
                        areaName = "A區",
                        floor = "2",
                        status = 1,
                        pageSize = 10,
                        pageIndex = 1

                    }
                });

            //調用post方法進行請求,用result來接收返回的數據
            var result = Post(URL, datajson);                    

下面是請求的具體方法

  /// <summary>
        /// post請求
        /// </summary>
        /// <param name="url"></param>
        /// <param name="json_param">參數</param>
        /// <param name="sign">md5加密</param>
        /// <returns></returns>
        public static string Post(string url, string json_param, string sign = "")
        {
            int timeoutSeconds = 0;
            WebProxy proxy = null;
            string contentType = "application/json;charset=UTF-8";

            Encoding encoding = Encoding.GetEncoding("UTF-8");
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            if (proxy != null) request.Proxy = proxy;
            if (timeoutSeconds > 0)
            {
                request.Timeout = 0x3e8 * timeoutSeconds;
            }
            if (sign != "")
            {
                request.Headers["sign"] = sign;
            }
            request.Method = "POST";
            request.AllowAutoRedirect = true;
            request.ContentType = contentType;
            request.ServicePoint.Expect100Continue = false;

            byte[] bytes = encoding.GetBytes(json_param);
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), encoding);
            return reader.ReadToEnd();
        }

之后我們可以將接收到的數據進行解析,解析有多種方式,下面以json字符串的格式為例

//首先要創建此實例
JavaScriptSerializer js = new JavaScriptSerializer();
//然后通過此方法解析出返回的實體類 ——需要事先創建好實體類來進行接收,具體的參數根據返回值確定無需進行其他操作
OutParkModel Model = js.Deserialize<OutParkModel>(postContent);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM