【问题标题】:Working with Web services response使用 Web 服务响应
【发布时间】:2012-07-16 05:08:06
【问题描述】:

我的页面必须通过以下调用从 Web 服务获得响应:

GetModBook.InvService.InventoryServiceClient isc = new GetModBook.InvService.InventoryServiceClient();

GetModBook.InvService.GetModBookingsOperationRequest gmoreq = new GetModBook.InvService.GetModBookingsOperationRequest();

GetModBook.InvService.GetModBookingsOperationResponse gmores = new GetModBook.InvService.GetModBookingsOperationResponse();

GetModBookingsOperationResponse 有一个名为 Bookings 的字段,其中包含一系列 Bookings

public GetModBookingsOperationResponse 
{
  public Booking Bookings;
}

我使用了网络服务的请求部分

示例:

gmoreq.RatePackages = new GetModBook.InvService.GetModBookingsOperationRequest[NoofRatePackages]

已编辑:

Calling a web service

但我不知道如何调用响应部分

任何建议将不胜感激。

编辑:

GetModBookingsResponse GetModBookings(GetModBookingsRequest request)

【问题讨论】:

  • 检查您的服务“InventoryServiceClient”。必须有一个以“GetModBookingsOperationRequest”为参数并返回“GetModBookingsOperationResponse”作为响应的方法。
  • 感谢@ZafarYousafi 在上面编辑和添加!
  • 公开预订;返回单个预订,这应该是公开的 Booking[] 预订;对于一个数组
  • 谢谢@Kaido 我希望有人能告诉我如何获得您提到的预订结果
  • 那只是 Zafar 的回答中的 gmores.Bookings

标签: c# web-services asp.net-4.0 httpresponse webservice-client


【解决方案1】:

这里是你如何得到响应

GetModBook.InvService.InventoryServiceClient isc = new GetModBook.InvService.InventoryServiceClient();

GetModBook.InvService.GetModBookingsOperationRequest gmoreq = new GetModBook.InvService.GetModBookingsOperationRequest();
//set the request parameters if there any

GetModBook.InvService.GetModBookingsOperationResponse gmores =isc.GetModBookings(gmoreq);

【讨论】:

  • gmores 是调用方法后得到的响应。检查它是否不为空并且有 Booking 数组
  • 是的,这就是我正在寻求帮助的部分。获取预订数组。
  • 这是调用服务方法的方式。如果您的预订数组为空或没有预订,那么它特定于您的服务和您发送的请求参数。您需要咨询服务提供商或文档以更好地调查问题。
【解决方案2】:

没有看到你完整的类实现,我不能说如何调用它,但这里有一个关于如何调用 Web 服务方法的示例。

以下示例将展示如何使用 Web 服务获取服务器。

Web 服务 cs 文件

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class SampleWebService : System.Web.Services.WebService
    {
[WebMethod]
        public DateTime GetServerDate()
        {
            return DateTime.Now;
        }
    }

网络服务消费者页面

SampleWebServiceWS.SampleWebServiceClient ws = new SampleWebServiceWS.SampleWebServiceClient();
          DateTime dt=  ws.GetServerDate();

类似的方式你可以调用你的方法并将它分配给一个变量。

我没有测试代码,但希望这将提供有关如何实现它的想法。

【讨论】:

  • 感谢@user970349,但我的客户端已经创建了网络服务。我必须连接到它并调用上述方法以获取预订详细信息
  • 好的。您只需要添加 Web 服务的引用,并且只需要使用上面提到的 Web 服务客户端对象调用您的方法。希望这就是您要寻找的东西:D
猜你喜欢
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多