C#WebService带参数Post请求+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接口
/// <summary>
/// WebService 的摘要说明
/// </summary>
[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.