精华内容
下载资源
问答
  • c#调用wsdl
    千次阅读
    2019-04-23 10:13:00
    public class Webservice
        {
            /// <summary>
            /// 实例化WebServices
            /// </summary>
            /// <param name="url">WebServices地址</param>
            /// <param name="methodname">调用的方法</param>
            /// <param name="args">把webservices里需要的参数按顺序放到这个object[]里</param>
            public static object InvokeWebService(string url, string methodname, object[] args)
            {
                //这里的namespace是需引用的webservices的命名空间,我没有改过,也可以使用。也可以加一个参数从外面传进来。
                string @namespace = "client";
    
                try
                {
                    //获取WSDL
                    WebClient wc = new WebClient();
                    Stream stream = wc.OpenRead(url + "?WSDL");
                    ServiceDescription sd = ServiceDescription.Read(stream);
                    string classname = sd.Services[0].Name;
                    ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
                    sdi.AddServiceDescription(sd, "", "");
                    CodeNamespace cn = new CodeNamespace(@namespace);
    
                    //生成客户端代理类代码
                    CodeCompileUnit ccu = new CodeCompileUnit();
                    ccu.Namespaces.Add(cn);
                    sdi.Import(cn, ccu);
                    CSharpCodeProvider csc = new CSharpCodeProvider();
                    //ICodeCompiler icc = csc.CreateCompiler();
    
                    //设定编译参数
                    CompilerParameters cplist = new CompilerParameters();
                    cplist.GenerateExecutable = false; //动态编译后的程序集不生成可执行文件
                    cplist.GenerateInMemory = true; //动态编译后的程序集只存在于内存中,不在硬盘的文件上
                    cplist.ReferencedAssemblies.Add("System.dll");
                    cplist.ReferencedAssemblies.Add("System.XML.dll");
                    cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
                    cplist.ReferencedAssemblies.Add("System.Data.dll");
    
                    //编译代理类
                    CompilerResults cr = csc.CompileAssemblyFromDom(cplist, ccu);
                    if (true == cr.Errors.HasErrors)
                    {
                        System.Text.StringBuilder sb = new System.Text.StringBuilder();
                        foreach (System.CodeDom.Compiler.CompilerError ce in cr.Errors)
                        {
                            sb.Append(ce.ToString());
                            sb.Append(System.Environment.NewLine);
                        }
    
                        throw new Exception(sb.ToString());
                    }
    
                    //生成代理实例,并调用方法
                    System.Reflection.Assembly assembly = cr.CompiledAssembly;
                    Type t = assembly.GetType(@namespace + "." + classname, true, true);
                    object obj = Activator.CreateInstance(t);
                    System.Reflection.MethodInfo mi = t.GetMethod(methodname);
    
                    //注:method.Invoke(o, null)返回的是一个Object,如果你服务端返回的是DataSet,这里也是用(DataSet)method.Invoke(o, null)转一下就行了,method.Invoke(0,null)这里的null可以传调用方法需要的参数,string[]形式的
                    return mi.Invoke(obj, args);
                }
                catch
                {
                    return null;
                }
            }
        }
    

      

    转载于:https://www.cnblogs.com/yuking/p/10754796.html

    更多相关内容
  • C#调用WebService实例和开发,对于初学者来说,在vs2012环境中,大家有可能不知道Web References文件夹是如何来的,它是通过右击项目,选择其中的”添加服务引用“。
  • C#调用WebService实例和开发(wsdl).rar
  • C# 调用WSDL接口及方法

    千次阅读 2017-12-13 14:42:00
    1.首先需要清楚WSDL的引用地址 如:http://XX.XX.4.146:8089/axis/services/getfileno?wsdl 上述地址的构造为 类名getfileno。 2.在.Net项目中,添加web引用。 3.在弹出页面中,点击前往按钮。 4....

    1.首先需要清楚WSDL的引用地址

      如:http://XX.XX.4.146:8089/axis/services/getfileno?wsdl

     

      上述地址的构造为 类名getfileno。

     

    2.在.Net项目中,添加web引用。

    3.在弹出页面中,点击前往按钮。

     

    4.将web引用名 进行自定义填写即可。

    效果如图所示:

     

    5.在项目中引用wsdl中的方法。

      首先需要进行实例化。再次调用方法即可。

    如下:

    6.调用结束。

    转载于:https://www.cnblogs.com/wlming/p/8032782.html

    展开全文
  • C#程序中调用webservice的接口,如果java或其他语言开发的,要请注意调用的方法 ,需要用soap 来调用 但如果webservice是用JAVA或者其它语言或者其它工具生成的话,使用vs+c#调用就经常遇到问题;就是使用上面...

    在C#程序中调用webservice的接口,如果java或其他语言开发的,要请注意调用的方法 ,需要用soap 来调用

    但如果webservice是用JAVA或者其它语言或者其它工具生成的话,使用vs+c#来调用就经常遇到问题;就是使用上面的方法显得很不好使,经常是使用SOAP UI调用没有问题,但使用上面的方法却调用报错,经常是500的错误。当你联系webservice提供商时通常会说SOAP UI都能调用得到,你们用代码为啥子调用不到,问题出在你们的调用方法上。

    在我们向其它公司提供webservice的时候,经常也会出现这样的问题,以前我们一直都以为SOAP UI能够调用,那么代码也就一定能够调用得通,但经过实践,我们自己写DEMO调用自己的webservice时才发现,并不是别人的调用代码写的有问题,因为我们自己也无法将自己写的webservice调用得通,或者说没有找到正确的方法调用得通。这时我们就要思考是否是SOAP UI能够调用得通的webservice就代码一定调用没有问题呢?或者说SOAP UI调用webservice和代码调用webservice的原理区别到底在哪里呢?

    总结一下:

    (1)SOAP UI能够调用成功,代码不一定能够调用成功,代码调用成功并且得到返回结果的前提是webservice可以按标准返回结果,但SOAP UI是只要按信封返回就可以收到结果而不管结果是否标准;

    (2)如果webservice的header有用户名和密码的校验,使用SOAP UI可以调用成功并且得到返回结果,但使用上面web引用的方式却不行。对于这种情况,有以下方法可以调用成功:


    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;
    using System.Web.Services;
    using System.IO;
    using System.Net;
    
    
    namespace mywsdl
    {
        public partial class Form1 : Form
        {
            // http://10.80.15.50:9999/Service/test?wsdl
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
    
            }
    
    
            public static string GetSOAPReSource(string url, string datastr)
            {
                try
                {
                    //request
                    Uri uri = new Uri(url);
                    WebRequest webRequest = WebRequest.Create(uri);
                    //webRequest.ContentType = "application/soap+xml; charset=utf-8";
                    webRequest.ContentType = "text/xml;charset=utf-8";
                    webRequest.Method = "POST";
                    using (Stream requestStream = webRequest.GetRequestStream())
                    {
                        byte[] paramBytes = Encoding.UTF8.GetBytes(datastr.ToString());
                        requestStream.Write(paramBytes, 0, paramBytes.Length);
                    }
                    //response
                    WebResponse webResponse = webRequest.GetResponse();
                    using (StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8))
                    {
                        string result = "";
                        return result = myStreamReader.ReadToEnd();
                    }
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                StringBuilder soap = new StringBuilder();
    
                soap.Append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://webservice.my/\">");
                soap.Append("<soapenv:Header/>");
                soap.Append("<soapenv:Body>");
                soap.Append("<web:test>");
                soap.Append("<!--Optional:-->");
                soap.Append("<arg0>"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+"</arg0>");
                soap.Append("</web:test>");
                soap.Append("</soapenv:Body>");
                soap.Append("</soapenv:Envelope>");
    
    
                string url = "http://10.80.15.50:9999/Service/test?wsdl";
                var result = GetSOAPReSource(url, soap.ToString());
            }
    
    
    
        }
    }
    

    展开全文
  • My customer gave me a .wsdl file to access their webservices. Using VS2008 I can create a project, but I don't know how to use the .wsdl file in it.解决方案You don't invoke WSDL file, you add service ...

    My customer gave me a .wsdl file to access their webservices. Using VS2008 I can create a project, but I don't know how to use the .wsdl file in it.

    解决方案

    You don't invoke WSDL file, you add service reference from the file.

    To add reference, right click on the project, select Add Service Reference. Paste path to your wsdl file and hit Go.

    6f9YG.png

    If you want to use legacy Web Service client, select Add Web Reference and paste path to the wsdl file from there.

    I recommend to use WCF (Add Service Reference option).

    To use the service reference add code like this:

    var serviceClient = new ServiceReferenceName.MyClassClient();

    serviceClient.DoSomething();

    You also need to update config file with the server URL that you customer should provide you with:

    binding="basicHttpBinding"

    bindingConfiguration="xxx"

    contract="MyServiceReference.xxx"

    name="xxx/>

    展开全文
  • 【转】c#调用webservice接口服务项目代码,引用*.wsdl文件调用
  • 1.报错Could find defalut endpoint element that Reference contract ‘****’ in the ServiceModel ...修改好后继续报错,wsdl那边增加了basicAuth权限认证 <system.serviceModel> <bindings> <basicHttpsBinding> ...
  • C# 动态调用wsdl WebService

    千次阅读 2018-09-11 21:33:06
    调用:wsdl Email地址验证 WEB 服务,通过查找给定的电子邮件域的邮件服务器和通过向邮件服务器发送数据来判断电子邮件地址正确与否 http://www.webxml.com.cn/WebServices/ValidateEmailWebService.asmx?wsdl &...
  • C#调用webservice wsdl文件

    千次阅读 2019-01-23 16:02:00
    经常遇到C#调用webservice的情况,通常来说如果webservice是用vs+c#来开发的,问题一般来说不大,直接web引用,然后调用就OK了。流程如下: 下面就是进行调用,就这么简单。 但如果webservice是...
  • wsdl http:///soap/JHIPLIB.SoAP.BS.StreamService.cls?CfgItem=JH2006绩效系统信息日 1:基于soap协议的接口,传输的数据为xml格式,在对接其他系统接口的时候,接口文档可能会给出的参数格式为json,这时候需要...
  • C#使用WSDL服务

    千次阅读 2018-04-27 11:58:23
    C#使用WSDL服务 C#使用WSDL服务 ...最近要调用wsdl接口,所以各种百度啊,以下是一些我参考的网址: 1. 在similar内学习了如何由wsdl接口生成C#内的XX.cs文件 2. 在海龙的博客内学习了生成XX...
  • C#调用WebService接口

    2013-10-23 19:05:33
    C#调用WebService接口
  • WSDL"); SetWebRequest(request); WebResponse response = request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); XmlDocument doc = new Xml...
  • c#调用带用户名密码验证的wsdl

    千次阅读 2019-06-20 16:00:00
    之前记录过一篇添加带验证的webservice,但是公司的另一个项目是...先添加web引用,选择wsdl文件路径,添加引用。 var svc = new 服务名(); svc.Credentials = new NetworkCredential("用户名", "密码"); var r...
  • wsdl生成服务的客户端调用代码
  • https://www.cnblogs.com/tuxer/articles/12980882.html
  • wsdl URL和自定义URL)上使用两个不同的WSDL混淆,您可以编写一个HttpModule来拦截对* .asmx的请求? wsdl URL并返回您的自定义WSDL .EDIT: 这是一个例子,根据我之前编写的一些代码进行了改编和简化,使得标准的* ....
  • WSDL 可描述网络服务(Web Services) WSDL 指网络服务描述语言 (Web Services Description Language)。 ...wsdl /language:c# /n:Demo /out:d:/TestService.cs http://www.abc.com/webservice..
  • c#中动态编译wsdl调用接口

    千次阅读 2017-09-26 23:09:52
    由于工作中需要,接触到了编译wsdl
  • C#静态调用带有SoapHeader验证的WebService.rar,InvokeService,bin,Release,Debug,Program.cs,obj,Release,DesignTimeResolveAssemblyReferencesInput.cache,TempPE,Debug,DesignTimeResolveAssemblyReferencesInput...
  • c#调用参数是xml的外部接口(wsdl

    千次阅读 2018-09-12 15:11:04
    string url = "...amp;groupcode=001"; XDocument document = XDocument.Load(@"E:\新建文件夹\NCSCXML\CESHI.xml"); string xmlFileName = do...
  • 1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint. 问题原因: 客户端和服务端的SOAP协议版本不一致。 解决方法: ①修改客户端SOAP协议版本和服务端一致 ②修改服务端SOAP协议版本和...
  • Solr高级查询Facet一.什么是facet solr种以导航为目的的查询结果成为facet,在用户查询的结果上根据分类增加了count信息,然后用户根据count信息做进一步搜索. facet主要用于导航实现渐进式精确搜索 ......
  • C#.NET调用WSDL接口及方法

    万次阅读 2014-06-05 14:52:48
    1.首先需要清楚WSDL的引用地址  如:
  • 【实例简介】客户端C#调用服务端Java的WebService【实例截图】【核心代码】b09cf50d-8be6-4ca6-a765-2d95bcdcee56└── 客户端└── 51book├── 51book│ ├── 51book.csproj│ ├── 51book.csproj.user│ ...
  • 是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。 XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。 Soap:(Simple ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,378
精华内容 4,551
关键字:

c#调用wsdl

友情链接: usbip_common.rar