最近的工作中有这样一个需求: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
以上