最近的工作中有這樣一個需求: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
以上