Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 发生网络连接故障_Ios_Objective C_Django_Facebook_Facebook Ios Sdk - Fatal编程技术网

Ios 发生网络连接故障

Ios 发生网络连接故障,ios,objective-c,django,facebook,facebook-ios-sdk,Ios,Objective C,Django,Facebook,Facebook Ios Sdk,错误: 在中找不到/login\u或注册密钥“name”处的多值DictKeyError 没有提到任何行号或页面,只提到Django设置文件中的页面(不是我的代码) 这段iOS代码失败 //Now pass this to our login NSURL *url = [NSURL URLWithString:BASE_URL]; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

错误: 在中找不到/login\u或注册密钥“name”处的多值DictKeyError

没有提到任何行号或页面,只提到Django设置文件中的页面(不是我的代码)

这段iOS代码失败

    //Now pass this to our login
    NSURL *url = [NSURL URLWithString:BASE_URL];
    AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                            name, @"name",
                            email, @"email",
                            fbid, @"fbid",
                            nil];

    NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/login_or_signup/" parameters:params];
    NSLog(@"PARAMS %@", params);
    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
//do something
}failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
        // your failure code here
        NSLog(@"FAILED %@", JSON);
    }]
登录或注册视图代码:

@csrf_exempt
def login_or_signup(request):

    user = False;
    username = False;
    email = "tmp@app.com"
    password = "tmppass"

    displayname = request.POST['name']
    fbid = request.POST['fbid']

    #Do we already have this user?

    if "email" in request.POST:
        email = request.POST['email']
        username = email
        try:
            user = User.objects.get(email=email)
        except User.DoesNotExist:
            pass

    if fbid and not user:
        username = fbid
        try:
            user_profile = UserProfile.objects.get(fbid=fbid)
            user = user_profile.user
        except UserProfile.DoesNotExist:
            pass

    if not user:
        user = User.objects.create_user(fbid, email, password)

    #tastypie api_key
    api = ApiKey.objects.get(user=user)

    #Update user_profile:
    user_profile = user.get_profile()
    user_profile.username = displayname
    user_profile.fbid = fbid
    user_profile.save()

    dic = list()
    dic.append({
        'username':user_profile.username, 
        'user_profile_id':user_profile.id,
        'fbid':fbid,
        'api_username':user.username,
        'api_key':api.key
    })
    return HttpResponse(simplejson.dumps(dic, cls=DjangoJSONEncoder), mimetype='application/json') 
一些方便的iOS代码

- (void)request:(FBRequest *)request didLoad:(id)result {

    //Loading details about this FB user.  Send the details to Web App and create and/or login this user.

    NSLog(@"FACEBOOK RESULT %@ ", result);

    NSString * fbid = [result objectForKey:@"id"];
    NSString * email = [result objectForKey:@"email"];
    NSString * name = [result objectForKey:@"name"];

    [self loginOrSignup:name email:email fbid:fbid];
}
另外请注意,上面的NSLog确实有效,我可以看到id、电子邮件、姓名等


它被发送到loginorsignup iOS方法,该方法通过AFNetworking联系url

urlpatterns = patterns('',    
    url(r'^admin/', include(admin.site.urls)),        
    url(r'^upload/', 'image.views.upload_file'),
    url(r'^login_or_signup', 'image.views.login_or_signup'),  
    url(r'^api/', include('v1_api.urls')) // mark the quotes
)

如果您的URL顶部没有django.contrib import admin的
,请在admin.site.url上使用引号。py

发布错误消息仅呈现500.html页面如果您将
DEBUG
设置为
True
,您应该会得到更详细的错误页面谢谢。在/login\u或\u注册键“name”处未找到多值DictKeyError。是否可以包含登录或注册视图的视图代码?问题已从简单的url修复更改为处理多值DictKeyError。很抱歉,在我发布之前,我没有重新加载页面来更新。这很好:)你知道更新的问题出了什么问题吗?你能从你的500页中发布更多信息吗?当我能看到整个stacktrace时就容易多了。它为您提供了有关哪一行失败的线索