Objective-c の NSURLConnection によって POST メソッドでユーザー名とパスワードを送信してサーバーにログインしようとしていますが、これは NSLog から取得します
NSログ:
NSLog:
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
コンソールに書き込む内容:
404 Not Found
Not Found
Sorry!The page requested was not found.
なぜこれが起こるのですか?インデックス ページではなく Not Found ページが表示されるのはなぜですか? 私は何を間違っていますか?ちなみに、httpではなくhttpsに接続しようとしていますが、ソースコードは次のとおりです。
@interface ProjectViewController ()
@property NSURLConnection * urlConnection;
@property NSMutableData * responseData;
@end
@implementation ProjectViewController
@synthesize responseData =_responseData;
- (IBAction)LoginButton:(UIButton *)sender {
NSMutableURLRequest *request = nil;
request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://loginpage.com"]];
NSString *post = [NSString stringWithFormat:@"sid=%@&PIN=%@", @"username", @"password"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setValue:[NSString stringWithFormat:@"%d", [postData length]] forHTTPHeaderField:@"Content-Length"];
[request setTimeoutInterval: 15];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
_urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[_urlConnection start];
//[self performSegueWithIdentifier:@"LoginComplete" sender:self];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[self.responseData appendData:data];
NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
//Oops! handle failure here
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
//NSDictionary *headerFields = [(NSHTTPURLResponse*)response allHeaderFields]; //This would give you all the header fields;
//NSLog(@"%@",headerFields);
}
}
@end
私が認識したのは、POST リクエストの一部をコメントに入れると、ページのソースがコンソールに出力されますが、もちろん、ユーザー名とパスワードをサーバーに送信できないことです。ログインページのソースコードを取得しただけですが、ログイン後にソースコードを取得したいです。実はこのセッションを使って別のページにリダイレクトしたいのです。
この部分:
NSString *post = [NSString stringWithFormat:@"sid=%@&PIN=%@", @"username", @"password"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
[request setValue:[NSString stringWithFormat:@"%d", [postData length]] forHTTPHeaderField:@"Content-Length"];
[request setTimeoutInterval: 15];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];