簡體   English   中英

如何在服務器端的電話應用程序中使用json?

[英]How to use json in phones applications with server side?

我本月將為android和ios開發新的應用。 我需要建立與應用程序通信的服務器端。 我讀過,最流行的交流方式是使用json。 我的問題是如何使用https發送?您能給我一個真實的例子嗎? 它是安全的嗎? 謝謝!

iOS情況下, NSJSONSerialization是適合您的方法

您必須創建Web服務以從服務器獲取數據並在iPhone中使用該Web服務,因為您可以使用此代碼。它將從Web服務url中獲取json格式的數據。您需要安裝sbjson庫以解析json數據您的項目。

#import "SBJson.h"

- (void)viewDidLoad
{       

idArray = [[NSMutableArray alloc] init];

 NSString *post =@"";

                NSURL *url=[NSURL URLWithString:@"http://blog.bigwavemedia.co.uk/?json=get_recent_posts"];

                NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

                NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

                NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
                [request setURL:url];
                [request setHTTPMethod:@"POST"];
                [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
                //[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
                // [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
                [request setHTTPBody:postData];

                //[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];

                NSError *error = [[NSError alloc] init];
                NSHTTPURLResponse *response = nil;
                NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];



                //NSLog(@"Response code: %d", [response statusCode]);
                if ([response statusCode] >=200 && [response statusCode] <300)
                {
                    NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
                    // NSLog(@"Response ==> %@", responseData);                    

                    SBJsonParser *jsonParser = [SBJsonParser new];
                    NSDictionary *jsonData = (NSDictionary *) [jsonParser objectWithString:responseData error:nil];


                    //NSLog(@"json data is : %@",jsonData);

                    NSArray *allDataArray = [[NSArray alloc]init];
                    allDataArray= [jsonData objectForKey:@"posts"];


                    for(int i=0;i<[allDataArray count];i++)
                    {
                        NSDictionary *tempDictionary = [allDataArray objectAtIndex:i];


                        if([tempDictionary objectForKey:@"id"]!=nil)
                        {

                            [idArray addObject:[tempDictionary objectForKey:@"id"]];
                        }

                    }

                } else {
                    if (error) NSLog(@"Error: %@", error);
                    [self alertStatus:@"Connection Failed" :@"Does not find any data!"];
                }


            }
            @catch (NSException * e) {
                NSLog(@"Exception: %@", e);
                [self alertStatus:@"Data not found." :@"Does not find any data!"];
            }
[super viewDidLoad];
}

在這里,post變量用於在您的url中發送參數。 NSMutableURLRequest用於調用url並以json格式獲取數據,這里我們使用sbjson庫中的SBJsonParser並將其解析為字典或數組形式。

那里有多個選擇。

的iOS

  1. NSJSONSerialization
  2. 傑森
  3. 如果使用的是基於REST的api, 則為RestKit

安卓系統

檢查這個答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM