2014-03-19 4 views
1

안녕하세요. 내 애플리케이션에서 내 로컬 데이터베이스 sqlite3에 데이터를 저장했습니다. 이제 온라인 양식 sqlite3 로컬 데이터 형식을 온라인 서버에 업로드해야합니다. 데이터를 검색하기 위해 모든 데이터 형식을 sqlite3 데이터베이스로 가져 오기 위해 dataDictionary를 사용했습니다. 그리고 json 형식으로 데이터를 변환했습니다. 문제는이 json 데이터를 온라인 서버에 전달하는 방법입니다.iOS7에서 JSON 데이터 객체를 서버에 POST하는 방법

NSMutableArray *array = [[NSMutableArray alloc] init]; 

    [self openDB]; 
    NSString *sql = [NSString stringWithFormat:@"SELECT * FROM reg"]; 
    const char *query_stmt = [sql UTF8String]; 
    sqlite3_stmt *statement; 

if (sqlite3_prepare_v2(db, query_stmt, -1, &statement, nil)==SQLITE_OK) { 
    while (sqlite3_step(statement)==SQLITE_ROW) { 

     NSMutableDictionary *_dataDictionary=[[NSMutableDictionary alloc] init]; 

     NSString *date = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)]; 
     field1Str= date; 

     NSString *customer = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)]; 
     field2Str = customer; 

     NSString *code1 = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 2)]; 
     field3Str = code1; 

     NSString *code2 = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement,3)]; 
     field4Str = code2; 

     [_dataDictionary setObject:[NSString stringWithFormat:@"%@",field1Str] forKey:@"Kname"]; 
     [_dataDictionary setObject:[NSString stringWithFormat:@"%@",field2Str] forKey:@"kphone"]; 
     [_dataDictionary setObject:[NSString stringWithFormat:@"%@",field3Str] forKey:@"karea"]; 
     [_dataDictionary setObject:[NSString stringWithFormat:@"%@",field4Str] forKey:@"kcity"]; 

     [array addObject:_dataDictionary]; 


     NSData* jsonData = [NSJSONSerialization dataWithJSONObject:array options:kNilOptions error:nil]; 

     NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
     NSURL *someURLSetBefore =[NSURL URLWithString:@"my url for inserting the data into my online server"]; 
     [request setURL:someURLSetBefore]; 
     [request setHTTPMethod:@"POST"]; 
     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
     [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
     [request setHTTPBody:jsonData]; 

     // print json: 
     NSLog(@"JSON summary: %@", [[NSString alloc] initWithData:jsonData 
                 encoding:NSUTF8StringEncoding]); 
     NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
     [connection start]; 
    } 
    } 

위의 코드를 사용하여 sqlite3 데이터베이스 데이터를 내 서버에 전달했습니다. jsondata를 json 형식의 데이터로만 로그에 기록합니다. 이 데이터를 내 온라인 서버로 푸시하는 법을 알려주세요. 코드에 누락 된 부분이 있습니다. 오랫동안 여기에 붙어있어서 먹고 싶지 않아요.

감사합니다.

답변

0

HTTP 통신에 적합한 프레임 워크를 사용하는 것이 좋습니다. Apple의 저수준 API를 사용하는 것은 상당히 까다로운 작업 일 수 있습니다.

이 좋은 프레임 워크 : 코드 위 https://github.com/AFNetworking/AFNetworking

+0

가 잘 작동하지만 내 데이터베이스에 빈 값을 저장하십시오 – user3427551

관련 문제