iOS 개발 서버에 json 데이터 게시
8779 단어 iOS
매개 변수
매개변수는 자동으로 일련 번호를 지정할 수 있습니다.전제 조건은 iOS에 있는 데이터 형식, 예를 들어 NSDictionary, NSArray, NSNumber, NSString 등이다.자신의 모델 수조라면 스스로 모델을 쓸 수 있는 ToString 방법은 인터넷에도 라이브러리가 있는 것 같지만 스스로 쓰는 것도 번거롭지 않다.예를 들어 내가 보낸 것은 연락처 그룹이다.
@interface ContactModel : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *contact_phone;
@property (nonatomic, strong) NSString *created_at;
- (NSString *)modelToString;
@end
- (NSString *)modelToString{
return [NSString stringWithFormat:@"{\"contact_phone\":\"%@\", \"name\":\"%@\", \"source\":1, \"created_at\":\"%@\"}",_contact_phone,_name,_created_at];
}
@end
그리고 모델에 그룹을 추가하기 전에먼저 모델 ToString을 호출하여 일련 번호를 진행하면 됩니다.매개 변수 안에서 직접 수조를 사용할 수 있다.예컨대
NSMutableArray *array = [ContactsHelper contactArray];
NSDictionary *parmeters = @{@"user_id":@"2222",
@"contact":array
};
요청하다
원본 http 요청을 사용합니다.
-(void)request: (NSString*)httpUrl withHttpArg: (NSDictionary*)parameters{
NSURL *url = [NSURL URLWithString: httpUrl];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 10];
[request setHTTPMethod: @"POST"];
if (parameters) {
if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) {
[mutableRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
}
[mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]];
}
[NSURLConnection sendAsynchronousRequest: request
queue: [NSOperationQueue mainQueue]
completionHandler: ^(NSURLResponse *response, NSData *data, NSError *error){
if (error) {
NSLog(@"Httperror: %@%ld", error.localizedDescription, error.code);
} else {
NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"HttpResponseCode:%ld", responseCode);
NSLog(@"HttpResponseBody %@",responseString);
NSJSONSerialization *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSDictionary *dicjson = (NSDictionary *)json;
dispatch_async(dispatch_get_main_queue(), ^{
// UI
}); }
}];
}
AFNetWorking을 사용합니다.
NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString: parameters:parmeters error:nil];
[NSURLConnection sendAsynchronousRequest: request
queue: [NSOperationQueue mainQueue]
completionHandler: ^(NSURLResponse *response, NSData *data, NSError *error){
if (error) {
NSLog(@"Httperror: %@%ld", error.localizedDescription, error.code);
} else {
NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"HttpResponseCode:%ld", responseCode);
NSLog(@"HttpResponseBody %@",responseString);
NSJSONSerialization *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSDictionary *dicjson = (NSDictionary *)json;
NSLog(@"%@",dicjson);
dispatch_async(dispatch_get_main_queue(), ^{
// UI
});
}
}];
AFNetworking을 권장합니다.자신의 말에 다른 설정을 더 해야 하는데, 구체적으로 나는 또 연구해야 한다.
블로그 주소
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
View의 레이아웃 방법을 AutoLayout에서 따뜻한 손 계산으로 하면 성능이 9.26배로 된 이야기이 기사는 의 15 일째 기사입니다. 어제는 에서 이었습니다. 손 계산을 권하는 의도는 없고, 특수한 상황하에서 계측한 내용입니다 화면 높이의 10 배 정도의 contentView가있는 UIScrollView 레이아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.