gpt4 book ai didi

python - 如何将 NSDictionary 发布到 Django 服务器

转载 作者:行者123 更新时间:2023-11-28 19:01:36 25 4
gpt4 key购买 nike

我想将 NSDictionary 作为 request.POST 数据发送到我的 Django 服务器。我已经尝试了很多东西,并在这里查看了类似的问题,但都没有用。这是我在客户端的内容:

NSString *url = @"http://mycompany.com/myurl";
NSDictionary *testDict = @{@"key1": @"value1", @"key2": @"value2"};
NSError *error;
if ([connectionController testPost:url dictionary:testDict returningResponse:&response error:&error]) {
NSLog(@"Success!");
}

connectionController 对象有这个方法:

- (BOOL)testPost:(NSString *)url dictionary:(NSDictionary *)dict returningResponse:(NSDictionary **)response error:(NSError **)error {
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:error];
if (!data) {
return NO;
}
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:data];
NSURLResponse *urlResponse = nil;
NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:error];
if (*error) {
return NO;
}
*response = [NSJSONSerialization JSONObjectWithData:urlData options:NSJSONWritingPrettyPrinted error:error];
return YES;
}

在我的 Django 服务器端:

def myurl_view_func(request):
print "request = %s" % request
key1 = request.POST.get('key1', None)
print "key1 = %s" % key1

但是当执行时,服务器没有收到 NSDictionary。相反,它打印:

request = <WSGIRequest
path:/myurl/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
...[snip]...

key1 = None

我做错了什么?

最佳答案

我对 Objective-C 一无所知,但如果您正在序列化字典并将其作为 JSON 发布,那么原始数据将在 request.body 中找到,而不是 请求.POST.

关于python - 如何将 NSDictionary 发布到 Django 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com