Могу ли я изменить URL-адрес сервера с помощью sudzc?

Я пытаюсь сгенерировать исходный код из wsdl файл для iOS, Я наткнулся на пару инструментов и до сих пор wsclient++ а также sudzПо крайней мере, кажется, работает. Но мне нужно отправлять запросы на разные серверы с одинаковыми soap интерфейс, в зависимости от состояния iOS приложение.

В исходном коде, созданном wsclient Я могу установить URL сервера через

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"];

Есть ли способ архивировать нечто подобное с исходным кодом, сгенерированным sudzc?

1 ответ

Решение

Пока мыло имеет тот же ответ, у вас не должно быть проблем с использованием вашего кода. Есть файл, в котором хранится адрес сервера. Код, сгенерированный 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 *** 
Другие вопросы по тегам