【发布时间】: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