我有以下代码库:
NSString *urlString = [NSString stringWithFormat:@"ip_address"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSData *imageData = UIImageJPEGRepresentation(imageToPost, 1.0);
NSString *imageDataEncoded = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
NSMutableDictionary *jsonRequest = [[NSMutableDictionary alloc] init];
[jsonRequest setObject:imageDataEncoded forKey:@"data"];
NSError *error;
NSData *dataFromDict = [NSJSONSerialization dataWithJSONObject:jsonRequest options:NSJSONReadingAllowFragments error:&error];
[request setHTTPBody:dataFromDict];
这条路对吗?你知道吗
在后端,Python使用请求库接收请求并解析json,我有一行代码如下:
print(base64.b64decode(request.form.get('data'))
这将打印请求的前几个字符,如下所示:
ImmutableMultiDict([('{"data":"\\/9j\\/4AAQSkZJRgABAQAASA`
如您所见,它实际上不是json,因为它有几个'标记。你知道吗
如何才能最好地处理接收到的JSON以及发送请求的最佳方式是什么?你知道吗
我认为python上的后端不是这样的。我已经将NSDictionary转换为NSData,就像您所做的那样,并使用其他方法,在NodeJS上获得类似的请求体。 似乎NSDictionary没有正确地转换为NSData,因为dictionary的键值是在请求时作为键发送的
从NSDictionary发布正文数据:![NSDictionary to NSData](https://i.stack.imgur.com/c5NZv.png)
但是,从NSString到NSData的转换提供了更可靠的JSON数据:
已更新
经过一些调查,我发现,我应该在请求的头中设置内容类型。你知道吗
然后发送从NSDictionary转换过来的NSData,工作正常。你知道吗
(注意:我使用ExpressJS作为后端,在中间件中使用body解析器)
相关问题 更多 >
编程相关推荐