我有一个问题,我被卡住了。我想将我从 Facebook 获取的信息从 iPhone 发送到我的服务器。
服务器端函数有效,我尝试使用示例键、值和一个名为“CocoaRestClient”的工具。
我正在从以下位置提取数据:
NSDictionary<FBGraphUser> *user
这是我的参数:
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithObjectsAndKeys:
user.name, @"name",
user.id, @"uid",
user.first_name, @"firstname",
user.last_name, @"lastname",
[user objectForKey:@"email"], @"email",
[FBSession activeSession].accessTokenData.accessToken, @"access_token",
nil];
我的 AFNetworking POST 功能:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"http://localhost:8888/iphonelogin" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
我在 xCode 中收到以下错误:
Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8b950c0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
我猜:
我猜 NSDictionary 的值一定有一些问题。我做了 NSLog 并得到了以下示例值,括号似乎不同。我是否必须进行类型转换?电子邮件值以某种方式保存在我的服务器上...如果您能帮助我,非常感谢。
输出参数的xCode NSLog:
{"access_token" = 324234sdfdfdt345345345345435;
email = "myemail@mail.com";
firstname = John;
lastname = Doe;
name = "John Doe";
uid = 343434;}
PS:所有属性都存储为 VARCHAR(255),除了 UID 作为我的服务器上的 bigint。
如果我使用这个 Cocoa Client 进行测试,所有条目都会成功发布到我的表中: