soapweb服务与C#
我被要求在C语言中监听来自web服务的请求并在C语言中响应它们。。这有什么办法呢?我建议先看看 我建议您先看看 如果您的问题是:Web服务必须用C#编写吗?答案是“不”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NETsoapweb服务与C#,c#,web-services,soap,C#,Web Services,Soap,我被要求在C语言中监听来自web服务的请求并在C语言中响应它们。。这有什么办法呢?我建议先看看 我建议您先看看 如果您的问题是:Web服务必须用C#编写吗?答案是“不”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NET 如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。如果您的问题是:Web服务是否必须用C#编写,答案是“否”。您可以用多种语言编写Web
如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。如果您的问题是:Web服务是否必须用C#编写,答案是“否”。您可以用多种语言编写Web服务,包括Java、VB.NET甚至COBOL.NET
如果您的问题是:Web服务是否必须与使用它们的程序使用相同的语言编写,那么答案再次是“否”,只要您的Web服务与客户端不在同一个Visual Studio项目中。我想您已经有了希望使用的Web服务。有几个关于在web上使用web服务的示例(例如:) 添加web引用 首先,你需要在你的C#项目中添加一个网络参考。在VS2005中,您可以通过右键单击项目并选择“AddWebReference”并提供web服务的url来实现这一点。在VS2008或更新版本中,会有一些额外的点击 完成后,VS将为您生成所有必要的代理类,包括同步和异步调用的方法,您可以像在本地实例化对象一样使用这些方法 查看生成的类 例如,如果您的web服务有一个方法(
DoSomething
),并且位于www.example.com/MyService.asmx
(也称为“MyService”),Visual Studio将创建一个名为“MyService”的类,该类的外观如下:
namespace MyNamespace // <-- this is the name you choose when you
{ // added the web reference
public class MyService : SoapHttpClientProtocol
{
// synchronous execution
public void DoSomething()
{
}
// async execution
public void DoSomethingAsync()
{
}
// callback event for async execution
public event DoSomethingCompletedEventHandler DoSomethingCompleted;
}
}
namespace MyNamespace/我假定您已经有了一个希望使用的web服务。下面是几个在web上使用web服务的示例(例如:)
添加web引用
首先,你需要向你的C#项目中添加一个web引用。在VS2005中,你可以通过右键单击项目并选择“添加web引用”,然后提供web服务的url来完成。在VS2008或更高版本中,会有两次额外的点击
完成后,VS将为您生成所有必要的代理类,包括同步和异步调用的方法,您可以像在本地实例化对象一样使用这些方法
查看生成的类
例如,如果您的web服务有一个方法(DoSomething
),并且位于www.example.com/MyService.asmx
(也称为“MyService”),Visual Studio将创建一个名为“MyService”的类,该类的外观如下:
namespace MyNamespace // <-- this is the name you choose when you
{ // added the web reference
public class MyService : SoapHttpClientProtocol
{
// synchronous execution
public void DoSomething()
{
}
// async execution
public void DoSomethingAsync()
{
}
// callback event for async execution
public event DoSomethingCompletedEventHandler DoSomethingCompleted;
}
}
namespace MyNamespace/从解决方案资源管理器中选择“添加服务引用”(右键单击您的项目),然后将您要使用的Web服务的URL添加到地址栏并说“开始”
客户端应该从Visual Studio自动创建。从解决方案资源管理器中选择“添加服务引用”(右键单击项目),然后将要使用的Web服务的URL添加到地址栏,并说“开始”
客户端应该从Visual Studio自动创建。Web服务通常不进行调用,而是接收调用。是否要创建web服务?要详细说明吗?我已经创建了web服务。。。。我需要一个C#中的客户端。netWeb服务通常不进行呼叫,它们接收呼叫。是否要创建web服务?要详细说明吗?我已经创建了web服务。。。。我需要一个C#net中的客户端。即使web服务是用C#编写的,也没有必要用C#编写客户端。它可以是任何可以与web服务对话的东西。在VisualStudio中,只需右键单击项目(使用任何语言)并选择“添加服务引用”,即可引用web服务。这将为您生成web服务的代理,您的客户端代码只需调用此代理。即使web服务是用C#编写的,也不必用C#编写客户端。它可以是任何可以与web服务对话的东西。在VisualStudio中,只需右键单击项目(使用任何语言)并选择“添加服务引用”,即可引用web服务。这将为您生成web服务的代理,您的客户端代码只需调用此代理即可。谢谢!我添加了它,但我的最后一个问题是如何调用服务中的函数?谢谢!我添加了它,但我的最后一个问题是如何调用服务中的函数?
// create a new instance of the service
MyService service = new MyService();
// attach the event handler
service.DoSomethingCompleted += MyEventHandler;
// invoke the method asynchronously
service.DoSomethingAsync(); // <-- this will be invoked on a background thread