今月、android と ios 用の新しいアプリケーションを開発しています。アプリと通信するサーバー側を構築する必要があります。通信する最も一般的な方法は json を使用することだと読みました。私の質問はどのようにですか?https で送信するには?実際の動作の例を教えてください。安心・安全ですか?ありがとう!
3 に答える
1
NSJSONSerializationは、iOS
于 2013-03-02T12:34:43.707 に答える
1
サーバーからデータを取得し、iphoneでそのWebサービスを使用するには、Webサービスを作成する必要があります。このコードを使用できます。json形式のWebサービスURLからデータを取得します。jsonデータを解析するには、sbjsonライブラリをインストールする必要があります。あなたのプロジェクト。
#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を使用し、そのデータを辞書または配列で解析します。
于 2013-03-02T12:36:34.843 に答える
1
于 2013-03-02T12:52:49.477 に答える