Могу ли я изменить 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 ***