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.