天天看點

winform調用webapi來擷取到json資料

最近的工作中有這樣一個需求:BS端提供一個接口,CS端通過這個接口擷取到一個json串,然後解析json。

BS端的接口CS能調用??是BS端提供一個URL,然後CS端通路這個URL獲得資料

接下來上操作:

// <summary>  
        /// 調用api傳回json  
        /// </summary>  
        /// <param name="url">api位址</param>  
        /// <param name="para">URL中的參數</para>  
        /// <returns></returns>  
        public static string HttpApi(string url,string para)
        {
            try
            {
            byte[] bsParams = Encoding.UTF8.GetBytes(para);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.ServicePoint.Expect100Continue = false;
            req.KeepAlive = true;
            req.Timeout = 5000;
            req.Proxy = null;
            req.ContentType = "application/x-www-form-urlencoded";
            Stream reqStream = req.GetRequestStream();
            reqStream.Write(bsParams, 0, bsParams.Length);
            reqStream.Close();

            WebResponse res = req.GetResponse();
            StreamReader sr = new StreamReader(res.GetResponseStream());
            string retString = sr.ReadToEnd();
             return retString;
            }
            catch (Exception)
            {
                return "";

            }
        }
           

這個para搞得我超心累,開始是直接寫在了URL裡邊,根本沒起作用,最後得到高人指點,得到了正确的打開方式~

使用函數:

string strURL = "http://10.10.10.10:9999/map/get_list_details";
string para = "page=0&limit=30";
var retString = HttpApi(url, para);//  開始隻傳了一個URL的參數:http://10.10.10.10:9999/map/get_list_details?page=0&limit=30
           

以上