文章目录
前言
在.NET框架中,WinForm应用程序与WebService交互是一种常见的数据交换方式,尤其是在需要从远程服务器获取数据或调用服务时。WebService通常以SOAP协议的形式提供服务,而.NET框架提供了丰富的工具和API来简化这一过程。本文将引导你通过几个简单的步骤,使用C#在WinForm程序中调用WebService并读取数据,同时提供代码示例,帮助你快速上手。
一、准备工作
1、确保已经建立了WebService服务
新建WebService服务程序的步骤见我的这篇文章:
win10部署webservice网站的步骤
https://blog.csdn.net/qq_38628970/article/details/126523977?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172359999816800182716335%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=172359999816800182716335&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-126523977-null-null.nonecase&utm_term=webservice&spm=1018.2226.3001.4450
2、确保服务端电脑上发布了WebService服务
详情见我的这篇文章:
webservice的创建+发布+调用
https://blog.csdn.net/qq_38628970/article/details/100773428?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172359978516800188539999%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=172359978516800188539999&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-2-100773428-null-null.nonecase&utm_term=webservice&spm=1018.2226.3001.4450
3、确保有作为服务端的程序给发布的服务中有数据写入
后面增添这部分的代码:
这里是引用
二、新建项目及添加WebReference
1、添加WebReference服务引用
2、填写发布服务的地址URL
IP为对应的发布时候的设置的IP
3、选‘添加Web引用’
4、在URL中填写WebService服务地址
笔者的是局域网地址:http://192.168.1.30/WebServiceData.asmx
5、确保能看到已发布服务中的数据
接口函数浏览,然后点击
6、引用完成
三、从webService服务中读数据的代码
引用完成后,就可以调用WebReference.Service类对象。
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 System.Web.Services;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public WebReference.Service svr = new WebReference.Service();
private void Form1_Load(object sender, EventArgs e)
{
svr.Url = "http://127.0.0.1/Service.asmx"; // 此处应该修改成已经发布的IP
}
private void timer1_Tick(object sender, EventArgs e)
{
string[] serverData = new string[] { };
serverData = svr.readData("参数1", "参数2");
string showDatas = string.Empty;
foreach (string data in serverData)
{
showDatas = showDatas + data + "\n";
}
richTextBox1.Text = showDatas;
}
}
}
项目中显示:
总结
可以实时读到WebService服务中的数据了。。。