1-添加服务引用;
(1)工程 - Service References - 添加服务引用;
(2)在“添加服务引用”中输入Webservice网站发布地址,并敲回车或点击“转到”;
(3)调用代码编写
实现方式:ServiceReference1.Service1SoapClient ser1 = new ServiceReference1.Service1SoapClient("Service1SoapClient");
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;using WebServiceTestApp.ServiceReference1;//添加引用
namespaceWebServiceTestApp
{public partial classForm1 : Form
{
ServiceReference1.Service1SoapClient myWebService= null;//设置变量
publicForm1()
{
InitializeComponent();
}private void Form1_Load(objectsender, EventArgs e)
{
myWebService= new ServiceReference1.Service1SoapClient("Service1Soap");//实例化变量
}private void btnUpLoadCycleTime_Click(objectsender, EventArgs e)
{//test
string SerialNumber = "160719070002873";string StationName = "3120";string MachineName = @"http://xx.xx.xx.xxx:8001/Service.asmx?";string Employee = "user";string Password = "123";float CycleTime = 0;bool Result = false;
DataTable ChildSNList= null;string Message =String.Empty;//调用Webservice方法如下
ServiceReference1.Service1SoapClient ser1 = new ServiceReference1.Service1SoapClient("Service1SoapClient");
myWebService.UpLoadCycleTime(SerialNumber, StationName, MachineName,
Employee, Password, CycleTime,outMessage);
}
}
}
2-添加Web引用
(1)工程添加Webservice方法如下
(2)C#调用Webservice代码实现
private void btnStationManage_Click(objectsender, EventArgs e)
{//test
WebReference.Service1 webservice = newWebReference.Service1();//测试接口过站Json如下:
string strJson = "[{\"serialnumber\":\"999919250000001\"}]";
DataTable Output_table= null;string result =String.Empty;
Output_table= webservice.Station_Manage(strJson, outresult);//测试前进站检查Json如下:
string strJson2 = "[{\"serialnumber\":\"999919250000001\"}]";
DataTable Output_table2= null;string result2 =String.Empty;
Output_table2= webservice.Station_Manage(strJson2, outresult2);
}
3-System.Net.WebRequest
实现方式:System.Net.WebRequest webObj = System.Net.WebRequest.Create("http://xx.xx.xx.xxx:xxxx/InterfaceService.asmx/DownLoadSO?sono=" + tbox_so.Text.Trim() + "");
protected void btn_SoSubmit_Click(objectsender, EventArgs e)
{string strResult = "";try{if (string.IsNullOrEmpty(tbox_so.Text.Trim()))
{
strResult= "{\"Result\":\"FAIL\",\"Data\":\"FAIL,请输入销售单!\"}";return;
}
System.Net.WebRequest webObj= System.Net.WebRequest.Create("http://xx.xx.xx.xxx:xxxx/InterfaceService.asmx/DownLoadSO?sono="
+ tbox_so.Text.Trim() + "");
StreamReader streamOjb= newStreamReader(webObj.GetResponse().GetResponseStream(), System.Text.Encoding.Default);
strResult=streamOjb.ReadLine();
streamOjb.Close();
}catch(Exception ex)
{
strResult= "{\"Result\":\"FAIL\",\"Data\":\"FAIL," + ex.Message + "\"}";
}finally{if (strResult.Contains("{\"Result\":\"FAIL\""))
{
lbl_msg_so.ForeColor=System.Drawing.Color.Red;
}else{
lbl_msg_so.ForeColor=System.Drawing.Color.Green;
}
strResult= strResult.Substring(strResult.IndexOf("Data") + 7);
lbl_msg_so.Font.Size=FontUnit.Larger;
lbl_msg_so.Text= strResult.Substring(0, strResult.Length - 2);
}
}
4-HTTP POST 调用WebMethod
var url = "http://localhost:51013/Service1.asmx/GetData";var values = new System.Collections.Specialized.NameValueCollection(); values.Add("data", "hi server");var client = newWebClient();var data = client.UploadValues(url, "POST", values);var result =System.Text.Encoding.UTF8.GetString(data);
Console.WriteLine(result);//输出://<?xml version="1.0" encoding="utf-8"?>//You enter:hi server
5-HTTP GET调用WebMethod
var url3 = "http://localhost:51013/Service1.asmx/GetData3?data='test'";var client3 = newWebClient();
client3.Headers.Add("Content-Type", "application/json");var result3 =client3.DownloadString(url3);
Console.WriteLine(result3);
//输出: //You enter:test
注意:GET调用时是通过Url传值,如果是string需要使用 data='test' 两边加上单引号,因为使用json反序列化。没有引号直接当成是数值转换会出错。(将抛出 500 的服务端错误)