我正在尝试为wsdl
的{{1}}文件生成源代码。我偶然发现了一些工具,到目前为止iOS
和wsclient++
c似乎至少可行。但是我需要使用相同的sudz
接口向不同的服务器发送请求,具体取决于soap
应用的状态。
在iOS
生成的源代码中,我可以通过
wsclient
我允许我做一些像
这样的事情MyWebService* ws = [MyWebService service];
// // set base url for entire application
[SoapWebService setGlobalBaseUrl: @"http://domain.com"];
NSError* error = nil;
Result* rs = [ws callMethod: p1 param2:p2 error:&error];
有没有办法存档与if(condition1) [SoapWebService setGlobalBaseUrl: @"http://betaserver.com"];
if(condition2) [SoapWebService setGlobalBaseUrl: @"http://developserver.com"];
if(condition3) [SoapWebService setGlobalBaseUrl: @"http://liveserver.com"];
生成的源代码类似的内容?
答案 0 :(得分:0)
只要soap响应相同,您就不会有使用代码的问题。有一个存储服务器地址的文件。 sudzc生成的代码可以修改为任何地址。我实际上创建了一种动态的服务器方式。我会找到我用来做这个的文件和代码。 您可以在项目中搜索您用于sudzc的域名。
我现在不在Mac前面,但我会稍后更新。
UPDATE:
好的,所以我创建了一个设置选项卡,并允许用户在必要时输入特定的IP地址。它将IP地址保存在字典中,然后该文件从字典中检索它。我留下了一些原始评论,并在代码中添加了一些,以便您可以看到两种方式。如果它让您感到困惑,请告诉我,我会再次编辑。在我的sudzc生成的代码中,我将文件修改为:
/*
wsUpdateQOH.m
The implementation classes and methods for the wsUpdateQOH web service.
Generated by SudzC.com
*/
#import "wsUpdateQOH.h"
#import "Soap.h"
#import "Settings.h"
#define URL @"http://%@/webServiceAddress/updateqoh.asmx"
/* Implementation of the service */
@implementation wsUpdateQOH
- (id) init
{
if(self = [super init])
{
// take out hard coded address and add variable to have a dynamic IP @"http://www.site.com/webServiceAddress/updateqoh.asmx"
// here is the dictionary return and format of the url string
NSString *savedValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"serverIP"];
self.serviceUrl = [[NSString alloc] initWithFormat:URL, savedValue];
// uncomment for a hard coded address self.serviceUrl = @"http://%@/webServiceAddress/updateqoh.asmx";
self.namespace = @"http://tempuri.org/webServiceAddress/UpdateQOH";
self.headers = nil;
self.logging = NO;
}
return self;
}
- (id) initWithUsername: (NSString*) username andPassword: (NSString*) password {
if(self = [super initWithUsername:username andPassword:password]) {
}
return self;
}
+ (wsUpdateQOH*) service {
return [wsUpdateQOH serviceWithUsername:nil andPassword:nil];
}
+ (wsUpdateQOH*) serviceWithUsername: (NSString*) username andPassword: (NSString*) password {
return [[[wsUpdateQOH alloc] initWithUsername:username andPassword:password] autorelease];
}
// *** Below here is the soap actions ***