2013-03-12 54 views
7

Vì vậy, tôi hiện đang sử dụng Facebook để đăng nhập vào ứng dụng iOS của mình và quản trị viên máy chủ gần đây đã thêm xác thực bảo mật bằng cách yêu cầu mã thông báo truy cập Facebook cùng với việc thực hiện tất cả các kết nối qua https. Đây là mã tôi đã cố gắng chạy, nhưng tôi đã nhận được một lỗi phản ứng máy chủ của 500 (lỗi máy chủ nội bộ) không có vấn đề gì tôi làm. Bất kỳ ý tưởng?Gửi yêu cầu HTTP POST trong iOS với JSON

NSMutableURLRequest *request = [NSMutableURLRequest 
           requestWithURL:[NSURL URLWithString:@"https://XXXXXXXXXXXXXXXX/users.json"]]; 

NSDictionary *requestData = [[NSDictionary alloc] initWithObjectsAndKeys: 
        userID, @"facebook_id", 
        FBAccessToken, @"fb_token", 
        userName, @"name", 
        nil]; 
NSError *error; 
NSData *postData = [NSJSONSerialization dataWithJSONObject:requestData options:0 error:&error]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:postData]; 
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
+0

500 lỗi thường có nghĩa là sự cố nằm với máy chủ chứ không phải máy khách. http://pcsupport.about.com/od/findbyerrormessage/a/500servererror.htm –

+0

Không có nhiều thứ để tiếp tục ở đây. Có gì trong cơ thể phản ứng? –

+0

@MikeD Nó hoạt động tốt trước khi họ thêm bảo mật facebook và cả những người làm việc trên các phiên bản web và android của ứng dụng đều có thể giao tiếp với máy chủ. –

Trả lời

3

Đây là cách bạn đăng nhập nội dung phản hồi.

@property (strong, nonatomic) NSMutableData *responseData; 

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{ 
    self.responseData = [NSMutableData data]; 
    … 
} 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{ 
    [self.responseData appendData:data]; 
    … 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    NSLog(@"response data - %@", [[NSString alloc] initWithData:self.responseData encoding:NSUTF8StringEncoding]); 
    … 
} 
1

Bạn cũng cần phải tuân thủ giao thức NSURLConnectionDelagate.

Các vấn đề liên quan