1、传多个参数
接口定义:(ResponseFormat与RequestFormat分别将相应参数序列化、请求参数反序列化)
[OperationContract]
[WebInvoke(UriTemplate = “api/fun2”, Method = “POST”, BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
string TestFun2(string p1,string p2);
实现:
public string TestFun2(string p1, string p2)
{
return p1+p2;
}
调用:
private void button1_Click(object sender, EventArgs e){try{string sUrl3 = "http://localhost:10086/api/fun2";string sBody2 = JsonConvert.SerializeObject(new { p1 = "1", p2 = "2" });HttpHelper.HttpPost(sUrl3, sBody2);}catch (Exception ex){}}
HttpHelper.cs
/// <summary>/// HttpPost (application/json)/// </summary>/// <param name="url"></param>/// <param name="body"></param>/// <param name="contentType"></param>/// <returns></returns>public static string HttpPost(string url, string body){string responseContent = string.Empty;HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);httpWebRequest.ContentType = "application/json";httpWebRequest.Method = "POST";httpWebRequest.Timeout = 200000000;//httpWebRequest.KeepAlive = true;httpWebRequest.MaximumResponseHeadersLength = 40000;byte[] btBodys = Encoding.UTF8.GetBytes(body);httpWebRequest.ContentLength = btBodys.Length;using (Stream writeStream = httpWebRequest.GetRequestStream()){writeStream.Write(btBodys, 0, btBodys.Length);}using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse()){using (StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream())){responseContent = streamReader.ReadToEnd();}}return responseContent;}
2、传对象
接口定义:
[OperationContract]
[WebInvoke(UriTemplate = “api/fun”, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, Method = “POST”, BodyStyle = WebMessageBodyStyle.Bare)]
string TestFun(TestModel data);
public string TestFun(TestModel pars){try{return pars.Test1 + pars.Test2;}catch (Exception ex){}}
调用:
private void button1_Click(object sender, EventArgs e){try{string sUrl = "http://localhost:10086/api/fun";TestModel model = new TestModel();model.Test1 = "1";model.Test2 = "2";string sBody = JsonConvert.SerializeObject(model);HttpHelper.HttpPost(sUrl, sBody);}catch (Exception ex){ }}
