2010-08-14 3 views
0

как URL запроса для выполнения или подключиться к серверу .. то, что я использую не работает ..как запросить URL для подключения

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@",[ConfigDB valueForKey:@"mailURL"], @"?ownerID=", [ConfigDB ownerID], @"&userid=",[ConfigDB userID],@"&pID=",pid,@"&emailAddress=",emailTxtField.text,[ConfigDB valueForKey:@"showEmailFlag"]]]; 


NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:url]; 
+0

Возможно, вы хотите очистить параметр URLWithString, используя stringWithFormat –

ответ

1

Это довольно stringWithFormat сообщение! Первое, что нужно проверить, это то, что вы получаете URL-адрес, который соответствует вашим ожиданиям.

После того, как вы получили запрос на URL-объект и рассмотреть возможность использования регулярных NSURLRequest, он должен быть быстрее, и это не выглядит, как вы намерены повторно использовать этот объект:

// already autoreleased 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

Тогда вам необходимо выполнить запрос. Здесь есть два подхода. Вы будете использовать NSURLDownload, если хотите сохранить запрос в файл. Похоже, вы хотите сделать запрос GET на какой-то сервер электронной почты, поэтому вы, вероятно, захотите использовать другой подход: NSURLConnection.

NSURLConnection В основном предназначен для асинхронных запросов. Вы предоставляете делегату некоторые методы, и ваше NSURLConnection будет использовать эти методы, чтобы вы знали, когда сообщение будет выполнено; были ли ошибки; и т. д.

Добавить объект до вашего вида класс контроллера для подключения и свойство NSMutableData. Вы начнете свою связь с (при условии, что ваш текущий класс также ваш делегат):

// initialize our storage for the file 
self.downloadData = [NSMutableData dataWithLength:1024]; 
// create and start the connection 
self.urlConnection = [NSURLConnection connectionWithRequest:request delegate:self]; 
if(nil == self.urlConnection) { 
    NSLog(@"Couldn't create connection to url %@", url); 
} 

В вашем коде где-нибудь, вероятно, ваш текущий вид контроллер-вы будете необходимости реализации этих методов:

-(void) connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { 
    // if you have more than one NSURLConnection in this class, test against the 
    // connection parameter 

    [downloadData appendData:data]; 
} 

-(void) connectionDidFinishLoading:(NSURLConnection*)connection { 
    // download completed successfully, we can do what we like with the downloadData object now 
    // ... 
} 

-(void) connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { 
    // handle failure with the grace of Audrey Hepburn. probably log something, too 
} 
Смежные вопросы