> 文档中心 > C#WebService带参数Post请求+WebService接口

C#WebService带参数Post请求+WebService接口

C#WebService带参数Post请求+WebService接口

  • 方法:string HttpPostWebService(string url, string method, string num1, string num2)
  • 调用
    • 创建WebService接口

方法:string HttpPostWebService(string url, string method, string num1, string num2)

string HttpPostWebService(string url, string method, string num1, string num2) {     string result = string.Empty;     string param = string.Empty;     byte[] bytes = null;     Stream writer = null;     HttpWebRequest request = null;     HttpWebResponse response = null;     param = HttpUtility.UrlEncode("inta") + "=" + HttpUtility.UrlEncode(num1) + "&" + HttpUtility.UrlEncode("intb") + "=" + HttpUtility.UrlEncode(num2);     bytes = Encoding.UTF8.GetBytes(param);     request = (HttpWebRequest)WebRequest.Create(url + "/" + method);     request.Method = "POST";     request.ContentType = "application/x-www-form-urlencoded";     request.ContentLength = bytes.Length;     try     {  writer = request.GetRequestStream(); //获取用于写入请求数据的Stream对象     }     catch (Exception ex)     {  return "";     }     writer.Write(bytes, 0, bytes.Length);//把参数数据写入请求数据流     writer.Close();     try     {  response = (HttpWebResponse)request.GetResponse();      //获得响应     }     catch (WebException ex)     {  return "";     }     #region 这种方式读取到的是一个返回的结果字符串     Stream stream = response.GetResponseStream(); //获取响应流     XmlTextReader Reader = new XmlTextReader(stream);     Reader.MoveToContent();     result = Reader.ReadInnerXml();     #endregion     #region 这种方式读取到的是一个Xml格式的字符串     //StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);     //result = reader.ReadToEnd();     #endregion      response.Dispose();     response.Close();     //reader.Close();     //reader.Dispose();     Reader.Dispose();     Reader.Close();     stream.Dispose();     stream.Close();     return result; }

调用

 string url = "http://localhost:50619/WebService.asmx";  string method = "AddIton";  string num1 = "1";  string num2 = "2";  string result = HttpPostWebService(url, method, num1, num2);

创建WebService接口

///     /// WebService 的摘要说明    ///     [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。     //[System.Web.Script.Services.ScriptService]    public class WebService : System.Web.Services.WebService    { public WebService() { } [WebMethod(MessageName ="AddIton",Description ="加法")] public int AddIton(int inta,int intb) {     return inta+ intb; } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void HelloJson() {     Context.Response.Clear();     Context.Response.ContentType = "application/json";     Context.Response.Write("{\"sResult\":\"1\",\"sMessage\":\"成品料号:  请联系人员处理\"}"); } #region 接口说明:"WebService接口" public  Dictionary<String, String> MaterialArry = new Dictionary<String, String>(); string Messages = ""; [WebMethod(Description = "WebService接口")]      public void WSInterface() {     string jsontext = string.Empty;     string jsonReturn = string.Empty;     try     {  Stream s = HttpContext.Current.Request.InputStream;//获得json 字符流,? ??  string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值  string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值  byte[] b = new byte[s.Length];  s.Position = 0;  s.Read(b, 0, (int)s.Length);  jsontext = Encoding.UTF8.GetString(b);  string message = jsontext;  Messages = message;  MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);  try  {      if (string.IsNullOrEmpty(message.Trim()))      {   throw new Exception("请求参数为空。");      }      jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: 02.GB002.0001B\"}";  }  catch (Exception ex)  {      jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: 02.GB002.0001A\"}";  }     }     finally     {  Context.Response.Clear();  Context.Response.Write(jsonReturn);  //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常  Context.Response.Flush();  Context.Response.SuppressContent = true;  HttpContext.Current.ApplicationInstance.CompleteRequest();     } } #endregion [WebMethod(Description = "MaterialLoading接口")]     public void MaterialLoading(string sJson) {     string jsonReturn = string.Empty;     try     {  string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值  string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值        string message = sJson;  Messages = message;  MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);  try  {      if (string.IsNullOrEmpty(message.Trim()))      {   throw new Exception("请求参数为空。");      }      jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: MaterialLoading\"}";  }  catch (Exception ex)  {      jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: MaterialLoading\"}";  }     }     finally     {  Context.Response.Clear();  Context.Response.Write(jsonReturn);  //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常  Context.Response.Flush();  Context.Response.SuppressContent = true;  HttpContext.Current.ApplicationInstance.CompleteRequest();     } } [WebMethod(Description = "TwsLotInputForJson接口")] public void TwsLotInputForJson(string sJson) {     string jsonReturn = string.Empty;     try     {  string usr = HttpContext.Current.Request.Headers["key"];//获得header 下key的值  string opid = HttpContext.Current.Request.Headers["opid"];//获得header 下opid的值  string message = sJson;  Messages = message;  MaterialArry = JsonConvert.DeserializeObject<Dictionary<String, String>>(Messages);  try  {      if (string.IsNullOrEmpty(message.Trim()))      {   throw new Exception("请求参数为空。");      }      jsonReturn = "{\"sResult\":\"1\",\"sMessage\":\"成品料号: TwsLotInputForJson\"}";  }  catch (Exception ex)  {      jsonReturn = "{\"sResult\":\"0\",\"sMessage\":\"成品料号: TwsLotInputForJson\"}";  }     }     finally     {  Context.Response.Clear();  Context.Response.Write(jsonReturn);  //之前测试Context.Response.End(); 总是报错然后替换成如下后可以跳过异常  Context.Response.Flush();  Context.Response.SuppressContent = true;  HttpContext.Current.ApplicationInstance.CompleteRequest();     } }    }

链接: https://download.csdn.net/download/qq_29714537/85441914.