私は奇妙な問題を抱えています。そのため、ユーザーがログインできるiphoneアプリで作業しており、ログインすると、アプリはサーバーにhttpGETリクエストを送信してユーザーを承認します。ユーザー名とパスワードが正しい場合は、認証トークン(通常のもの)を返します。
奇妙な部分は、これをローカルでテストし、httpリクエストのURLをローカルマシンに向けると、正常に機能することです。すべてが正しく承認され、すべてのデータが正しく返されます。
しかし、今日、私はアプリを十分に安定させたので、残りのAPIをサーバーにデプロイすることにしましたが、httpリクエストのURLをサーバーのURLに変更すると、リクエストは失敗します。
サーバーが正しくデプロイされていない可能性があると思ったので、Firefox Restクライアントでhttpエンドポイントをテストしたところ、すべてが機能しているようで、認証が機能し、データが返されました。
誰か考えがありますか?私は問題が何であるかについて迷っています。
AFNetworkingライブラリを使用してリクエストを行っています。
これが私のコードです:
self.apiHttpClient = [[TKRHttpClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://mywebsite.com/api"]];
--------------
NSString *username = [usernameField text];
NSString *password = [passwordField text];
TKRHttpClient *httpClient = [TKRHttpClient sharedInstance];
NSMutableURLRequest *request = [httpClient requestWithMethod:@"GET" path:@"/user/auth" parameters:nil];
[request addValue:username forHTTPHeaderField:@"username"];
[request addValue:password forHTTPHeaderField:@"password"];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
if(response.statusCode == 200){
NSDictionary * headers = [response allHeaderFields];
NSString *token = [headers objectForKey:@"auth_token"];
NSLog(@"token was %@", token);
[[AppController sharedAppController] initializeDataForUserToken:token];
}else{
NSLog(@"upload failed!");
}
} failure:^(NSURLRequest *request , NSHTTPURLResponse *response , NSError *error , id JSON ) {
NSLog(@"code was: %i", response.statusCode);
if(response.statusCode == 401){
[errorMessage setText:@"Incorrect password or username"];
}
}];
[operation start];
ブレークポイントを設定しましたが、リクエストは直接失敗ブロックに送られるようです。「NSLog(@ "code was:%i"、response.statusCode);」という行 失敗ブロックで200が出力されます。しかし、サーバーでログを追跡すると、要求が受信されませんでした。
どんな助けでも大歓迎です。ローカルのTomcatに対して機能する理由を一生理解できませんが、サーバーにデプロイすると機能しません。
前もって感謝します!