【问题标题】:how to use soap service in swift after converting wsdl2objc转换wsdl2objc后如何快速使用soap服务
【发布时间】:2015-06-22 03:39:14
【问题描述】:

您好,我是 iOS 应用程序和 swift 的新手,在弄清楚如何将 swift 与 wsdl Web 服务一起使用时遇到了麻烦。因此,我在 Spring Web 应用程序中创建了一些 Web 服务,并且能够在 Java 中的某些客户端中使用 Web 服务。这是一个例子:

    GroupService service = new GroupServiceService()
            .getGroupServiceSoap11();
    GetGroupRequest getGroupRequest = new GetGroupRequest();
    getGroupRequest.setSearchString("abc");
    GetGroupResponse response = service.getGroup(getGroupRequest);

    for (RespondGroup rg : response.getRespondGroup()) {
        System.out.println(rg.getGroupName());
    }

现在,我想在我的 iphone 应用程序中以 swift 语言使用该服务。首先,我使用 wsdl2objc 工具创建了目标 c 类。然后,我让它编译并能够使用 swift 控制器中的类。但是,我在网上找不到一个示例,向我展示如何快速使用该服务。这些是我可以在 swift 控制器中调用的类。

GroupServiceService GroupServiceService_getGroupRequest GroupServiceService_getGroupRespond GroupServiceService_respondGroup GroupServiceSoap11Binding GroupServiceSoap11Binding_envelope GroupServiceSoap11Binding_getGroup GroupServiceSoap11BindingOperation GroupServiceSoap11BindingResponse GroupServiceSoap11BindingResponseDelegate

根据 wsdl2objc 文档https://code.google.com/p/wsdl2objc/wiki/UsageInstructions,它只显示了如何在目标 c 中执行此操作。我应该尽快做这样的事情

    var binding:(GroupServiceService)GroupServiceSoap11Binding

    var request:GroupServiceService_getGroupRequest
    var response:GroupServiceSoap11BindingResponse

    request.searchString = "abc"

    response = binding.getGroupUsingGetGroupRequest(request)

    response.bodyParts

有人可以告诉我如何快速使用这些对象来完成与我在 java 客户端中所做的相同的事情吗?

或者,如果有人能指出我在 swift 中使用 wsdl 的更好方法吗?

谢谢

另外,我让它在目标 C 中工作。这是代码:

- (IBAction)button {
    GroupServiceSoap11Binding* binding = [GroupServiceService GroupServiceSoap11Binding];
    GroupServiceSoap11BindingResponse* response;
    GroupServiceService_getGroupRequest* request = [[GroupServiceService_getGroupRequest alloc]init];
    request.searchString = @"123";
    response = [binding getGroupUsingGetGroupRequest:request];
    dispatch_async(dispatch_get_main_queue(), ^{
        [self processResponse:response];
    });

}

-(void) processResponse: (GroupServiceSoap11BindingResponse*)soapResponse
{
    NSArray *responseBodyParts = soapResponse.bodyParts;
    id bodyPart;
    bodyPart = [responseBodyParts objectAtIndex:0];
    GroupServiceService_getGroupResponse *groupResponse = bodyPart;
    NSArray *responseGroupList = [groupResponse respondGroup];
    GroupServiceService_respondGroup *firstRespondGroup = [responseGroupList objectAtIndex:0];
     NSLog(@"%@", firstRespondGroup.groupName);

}

只需要有人把它翻译成swift。

【问题讨论】:

    标签: ios web-services swift soap wsdl


    【解决方案1】:

    经过反复试验,我得到了它。大概可以让它看起来更好。不管怎样,就是这样:

    var binding = GroupServiceService.GroupServiceSoap11Binding()
    var request = GroupServiceService_getGroupRequest()
    request.searchString = "UVA"
    var response:GroupServiceSoap11BindingResponse = binding.getGroupUsingGetGroupRequest(request)
    var responseBodyParts = response.bodyParts
    var bodyPart = responseBodyParts[0] as! GroupServiceService_getGroupResponse
    var responseGroupList = bodyPart.respondGroup
    var firstRespondGroup = responseGroupList[0] as! GroupServiceService_respondGroup
    println(firstRespondGroup.groupName)
    

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多