반응형
AFNetworking 2.0을 사용한JSON 데이터 게시
HTTP POST 요청을 통해 JSON 문자열을 입력으로 받아들이는 웹 스크립트를 가지고 있습니다.같은 AFNetworking 1.x의 예를 몇 개 본 적이 있습니다.입력으로서 포맷된 JSON을 가지는 Web 스크립트에 HTTP POST 요구를 실행하기 위해서, AFNetworking 2.0 의 예를 가르쳐 주세요.
감사해요.
문서를 검색한 후 예시로 팔로우한 코드를 몇 개 시험한 후
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *params = @ {@"user" :txtUserName, @"pwd" :txtPwd };
[manager POST:URL_SIGNIN parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"JSON: %@", responseObject);
}
failure:
^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
또한 서버 스크립트에서 응답 헤더 유형을 Application/json으로 설정하는 것도 잊지 마십시오.
POST 파라미터의 간단한 템플릿을 다음에 나타냅니다.NSMutableDictionaryJSON 형식의 파라미터.AFNetworking 2.4.1과 연동됩니다.
NSString *baseURL = @"http://your-server.com/";
NSString *path = @"method/url/";
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[parameters setObject:@"value" forKey:@"key"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:path parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
//here is place for code executed in success case
} failure:^(NSURLSessionDataTask *task, NSError *error) {
//here is place for code executed in error case
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error while sending POST"
message:@"Sorry, try again."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
NSLog(@"Error: %@", [error localizedDescription]);
}];
서버에 json을 게시하려면 다음과 같이 파라미터를 게시해야 합니다.
이 방법을 사용하면 요청 헤더의 "Content-Type"이 "application/json"임을 알 수 있습니다.
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;
NSDictionary *paras = @{@"uid" : @(10020)};
[manager POST:@"http://your.request.url" parameters:paras success:^(AFHTTPRequestOperation *operation, id responseObject) {
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"the falire is %@", error);
}];
이게 도움이 되길.:)
신속한 처리:
에 추가하다manager.AFHTTPRequestOperationManager
manager.requestSerializer = AFJSONRequestSerializer(writingOptions: NSJSONWritingOptions.PrettyPrinted)
매개 변수 사전 json 문자열을 게시하려면 다음 코드를 사용합니다.
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"your_webservice_post_url"]];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSError *error;
NSDictionary *parameters = @{@"customValue":@"value"};
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:&error];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setHTTPBody:jsonData];
언급URL : https://stackoverflow.com/questions/21487184/posting-json-data-using-afnetworking-2-0
반응형
'programing' 카테고리의 다른 글
| 설치된 플러그인에서 WordPress 플러그인 zip 파일을 만들 수 있습니까? (0) | 2023.02.12 |
|---|---|
| Node.js Sass 버전 7.0.0은 ^4.0.0 || ^5.0.0 || ^6.0.0과 호환되지 않습니다. (0) | 2023.02.12 |
| 트위터 부트스트랩 양식 필드가 너무 작습니다. (0) | 2023.02.12 |
| 폼익 반응 - 폼 제출 시에만 유효성 검사 트리거 (0) | 2023.02.12 |
| SharedArrayBuffer는 2021년 5월경 M91에서 발신원 간 분리가 필요합니다. (0) | 2023.02.12 |