iOS之POST请求数组样式参数DES加密问题

本文探讨了在iOS开发中遇到的POST请求中数组参数使用DES加密后丢失大括号的问题。分析了这不是由于字符串过长导致,而是DES加密的填充方式。解决方案是先进行URL编码,然后加密。同时,对于真正由于字符串过长导致的加密解密丢失,文章也提供了解决方法,即增加加密解密的长度。详情请参考相关DES加密讲解和Demo。
摘要由CSDN通过智能技术生成

一,说明

在用post请求时,字典中的一个参数为数组形式,下图为json的格式:



此时,我分析直接将数组保存为value存在字典:以下为错误的代码:
//错代码
NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
    [dict setObject:self.array forKey:@"dataArray"];
    [dict setObject:@"1" forKey:@"type"];
    [dict setObject:@"xxx" forKey:@"test"];
    NSDictionary *postDic=[NSDictionary dictionaryWithDictionary:dict];

我为什么说是错误代码:因为post上传的参数中数组是不能用小括号表示,要用中括号表示,(具体,可用控制台打印,如果数组是用小括号输出,则是不符合上传服务器格式的) 正确的格式如下图:

正确的代码是 将数组转为json字符串,代码如下:
//正确代码
NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
    NSData *data=[NSJSONSerialization dataWithJSONObject
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值