C#調用Webservice的代碼實現方式匯總


1-添加服務引用;

  (1)工程 - Service References - 添加服務引用;

    

 

   (2)在“添加服務引用”中輸入Webservice網站發布地址,並敲回車或點擊“轉到”;

    

 

   (3)調用代碼編寫

     實現方式:ServiceReference1.Service1SoapClient ser1 = new ServiceReference1.Service1SoapClient("Service1SoapClient");

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WebServiceTestApp.ServiceReference1;//添加引用

namespace WebServiceTestApp
{
    public partial class Form1 : Form
    {
        ServiceReference1.Service1SoapClient myWebService = null;//設置變量
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            myWebService = new ServiceReference1.Service1SoapClient("Service1Soap");//實例化變量
        }

        private void btnUpLoadCycleTime_Click(object sender, 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,
                out Message);
        }
}
}

  

2-添加Web引用

  (1)工程添加Webservice方法如下  

    

 

     

 

     

 

     

 

   (2)C#調用Webservice代碼實現  

private void btnStationManage_Click(object sender, EventArgs e)
        {
            //test
            WebReference.Service1 webservice = new WebReference.Service1();
            
            //測試接口過站Json如下:
            string strJson = "[{\"serialnumber\":\"999919250000001\"}]";
            DataTable Output_table = null;
            string result = String.Empty;
            Output_table = webservice.Station_Manage(strJson, out result);

            //測試前進站檢查Json如下:
            string strJson2 = "[{\"serialnumber\":\"999919250000001\"}]";
            DataTable Output_table2 = null;
            string result2 = String.Empty;
            Output_table2 = webservice.Station_Manage(strJson2, out result2);

        }

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(object sender, 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 = new StreamReader(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 = new WebClient(); 
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"?> // <string xmlns="http://tempuri.org/">You enter:hi server</string>

 5-HTTP GET調用WebMethod

var url3 = "http://localhost:51013/Service1.asmx/GetData3?data='test'"; 
var client3 = new WebClient(); 
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 的服務端錯誤)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM