에서 JSON 스트림 구문 분석에 실패한다. 게이트웨이 사용자 이름과 암호를 사용하여 웹 서비스가 차단되었습니다. 게이트 웨이에 사용자 이름과 암호를 전달하기 위해 어떤 코드가 포함되어야합니까? 왜 이런 일이 일어나는 걸까요? 응답 코드를 0으로받습니다. 또한 누군가가 웹 서비스와 아이폰 OS에서 JSON에 대해 배울 수있는 좋은 자습서를 제공 할 수 있다면. 미리 감사드립니다.연결은 내가 <strong>JSON과 Webservice를</strong>를 사용하여 간단한 로그인을 사용하려고 IOS
여기 내 코드입니다. 코드는로 작성됩니다 UIButton
NSString *post = [NSString stringWithFormat:@"&Email=%@&Password=%@",
[self.emailTextField text], [self.passwordTextfield text]];
NSLog(@"PostData: %@",post);
NSURL *url = [NSURL URLWithString:@"http:/Gateway/api/json/reply/ZympayAuthenticateCustomer"];
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];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response error:&error];
NSLog(@"Response code: %ld", (long)[response statusCode]);
if ([response statusCode] >= 200 && [response statusCode] < 300) {
NSString *responseData = [[NSString alloc]initWithData:urlData
encoding:NSUTF8StringEncoding];
NSLog(@"Response ==> %@", responseData);
NSError *error = nil;
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:urlData
options:NSJSONReadingMutableContainers
error:&error];
NSLog(@"Data: %@",jsonData);
NSLog(@"Success: %ld",(long)success);
if (success == 1) {
NSLog(@"Login SUCCESS");
}
else {
NSString *error_msg = (NSString *) jsonData[@"error_message"];
[self alertStatus:error_msg :@"Sign in Failed!" :0];
}
}
else {
//if (error) NSLog(@"Error: %@", error);
[self alertStatus:@"Connection Failed" :@"Sign in Failed!" :0];
}
}
}
@catch (NSException * e)
{
NSLog(@"Exception: %@", e);
[self alertStatus:@"Sign in Failed." :@"Error!" :0];
}
if (success)
{
NSLog(@"THIS IS SUCCESS");
// [self performSegueWithIdentifier:@"login_success" sender:self];
}
}
가 왜'을 application/x-www-form-urlencoded' 등의 콘텐츠를 보내는? 이것은 일반적으로 오류가 발생하기 쉽고 적절한 백분율 인코딩을 생략하여 매개 변수를 올바르게 전달하지 않았습니다. 여하튼 콘텐츠 유형으로 ** JSON **을 사용하십시오. – CouchDeveloper