2012-09-20 78 views
-2

我有一個完整的iphone應用程序使用webview,但我正在考慮將其轉換爲本機應用程序。我在我的應用程序中有幾個AJAX API調用,那麼如何使用objective c使用相同的參數進行相同的api調用並解碼來自它的json格式的響應?將我的iOS webview應用程序轉換爲本地應用程序

我只需要很好的指針來構建這種應用程序。

+1

[RestKit](http://restkit.org)是一個可以輕鬆實現與RESTful JSON/XML服務交互的框架。該框架提供了將Web服務響應提取,解析和對象映射到目標c對象的機制。 – mja

+0

方式太寬泛。分解成至少3個問題,並顯示一些代碼請! – CodaFi

回答

1

這是在後臺線程同步調用中執行此操作的示例。 如果你在前臺運行它,你應該做一個異步調用。 檢查NSURLConnection的Apple文檔。

NSMutableDictionary *allParams = [NSMutableDictionary dictionary]; 
[allParams setObject:@"fieldvalue1" forKey:@"fieldname1"]; 
[allParams setObject:@"fieldvalue2" forKey:@"fieldname2"]; 
[allParams setObject:@"fieldvalue3" forKey:@"fieldname3"]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:@"http://someserver/somecgi/"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPMethod:@"POST"]; 
NSInputStream *inputStream = [allParams queryInputStream]; 
[request setHTTPBodyStream:inputStream]; 

NSHTTPURLResponse *urlResponse = nil; 
NSError *urlError = nil; 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&urlError]; 

NSMutableDictionary *resultDict = nil; 
if (responseData) 
{ 
    if ([urlResponse statusCode] >= 200 && [urlResponse statusCode] < 300) 
    { 
     NSString *result = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease]; 
     /* parse your result here */ 
    } 
} 
相關問題