バックエンド サーバーと通信する必要がある iPad アプリを作成しています。問題は、私が持っているコードが失敗していて、その理由がわからないことです。「curl」を使用すると、期待どおりの応答が得られます。
これはcurlの使用法です:
curl -X POST -H "Content-Type: application/json;charset=UTF-8" -d '{"userName":"foo2@foolinator.com", "password":"password"}' "http://server.local/signature/service/auth/rest/firewall/login" --dump-header headers
「ヘッダー」ファイルを開くと、期待どおりの 302 の応答が返され、Cookie に情報が含まれています。ただし、私の目的の C コードでは、「内部サーバー エラー」の応答が返されます。
// Create the request.
NSString* loginURL = @"http://server.local/signature/service/auth/rest/firewall/login";
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:loginURL]];
NSString* credentials = @"'{\"userName\":\"foo2@foolinator.com\", \"password\":\"password\"}'";
NSData* connectionData = [credentials dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:patientConnectionData];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
// Logging in...
NSError* error = nil;
NSURLResponse* response;
NSData* result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*) response;
NSString* mime = [httpResponse MIMEType];
NSString* responseString = [NSHTTPURLResponse localizedStringForStatusCode:[httpResponse statusCode]];
応答はエラー 500: 内部サーバー エラーです。私は何を間違っていますか?