我可以用sudzc更改服务器URL吗?

时间:2013-10-14 14:38:06

标签: ios wsdl sudzc

我正在尝试为wsdl的{​​{1}}文件生成源代码。我偶然发现了一些工具,到目前为止iOSwsclient++ c似乎至少可行。但是我需要使用相同的sudz接口向不同的服务器发送请求,具体取决于soap应用的状态。

iOS生成的源代码中,我可以通过

设置服务器URL
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"]; 生成的源代码类似的内容?

1 个答案:

答案 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 ***