原因是项目要求,需用C#调用对方的WebService做接口;因以前未接触过C#,在此诚心请教:
在win7上安装了VS2010,新建了一个windows窗体应用程序C#项目webservice1;窗口放了1按钮与1文本框
对方的WSDL文件,放在了项目目录里
d:\documents\visual studio 2010\Projects\webservice1\SI_03AA6_SNZYXT2ERP_JHDGBService.wsdl
在【项目方案资源管理器】里,通过【引用】-【添加服务引用】,带入这个wsdl,命名空间为ws1:
在【对象浏览器】里发现这个ws1有2个interface和4个类结构
对方的WebService只定义了1个函数SI_03AA6_SNZYXT2ERP_JHDGB,函数仅有1个形参结构体数组参数(ref ZSSD_JHDGB[ ] ),返回1字符串string
结构体ZSSD_JHDGB有15个string成员
在按钮里写了调用代码,整体程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace webservice1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ws1.ZSSD_JHDGB[] sz1;
sz1 = new ws1.ZSSD_JHDGB[1]; //结构数组参数定义
ws1.ZSSD_JHDGB sj;
sj = new ws1.ZSSD_JHDGB();
sj.VBELN = “3000059932”; //对结构数据赋值
sj.POSNR = “000010”;
sj.LFIMG = “1”;
sz1[0] = sj; //对结构数组赋值
在win7上安装了VS2010,新建了一个windows窗体应用程序C#项目webservice1;窗口放了1按钮与1文本框
对方的WSDL文件,放在了项目目录里
d:\documents\visual studio 2010\Projects\webservice1\SI_03AA6_SNZYXT2ERP_JHDGBService.wsdl
在【项目方案资源管理器】里,通过【引用】-【添加服务引用】,带入这个wsdl,命名空间为ws1:
在【对象浏览器】里发现这个ws1有2个interface和4个类结构
对方的WebService只定义了1个函数SI_03AA6_SNZYXT2ERP_JHDGB,函数仅有1个形参结构体数组参数(ref ZSSD_JHDGB[ ] ),返回1字符串string
结构体ZSSD_JHDGB有15个string成员
在按钮里写了调用代码,整体程序如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace webservice1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ws1.ZSSD_JHDGB[] sz1;
sz1 = new ws1.ZSSD_JHDGB[1]; //结构数组参数定义
ws1.ZSSD_JHDGB sj;
sj = new ws1.ZSSD_JHDGB();
sj.VBELN = “3000059932”; //对结构数据赋值
sj.POSNR = “000010”;
sj.LFIMG = “1”;
sz1[0] = sj; //对结构数组赋值
string uname, upass;
uname = “***”;
upass = “***”;
System.Net.NetworkCredential c = new System.Net.NetworkCredential(uname, upass);
ws1.SI_03AA6_SNZYXT2ERP_JHDGBClient s = new ws1.SI_03AA6_SNZYXT2ERP_JHDGBClient();
//s.Credentials = c; //
//s.ClientCredentials.UserName.UserName = uname;
//s.ClientCredentials.UserName.Password = upass;
string rs = s.SI_03AA6_SNZYXT2ERP_JHDGB(ref sz1);
//MessageBox.Show(rs);
label1.Text = rs;
//label1.Text = “ok”;
}
}
}
//整体代码END
①学习了网上达人,但身份验证时未找到服务的Credentials属性,不知道ClientCredentials行不行?
②不知道是不是服务SI_03AA6_SNZYXT2ERP_JHDGBClient找错了,调试运行就出错,显示有重载……
原因是初次用C#,不知道问题出在哪,请各位达人不吝指导!
解决方案
66
你的确定左边的高级按钮啊,点进去就能看到添加web引用了