我需要形成一个 POST NSURLRequest 并且我需要将这个结构传递给请求:
- 检查(具有字符串键和值的 NSDictionaries 数组)
- 属性(与 array1 相同的结构)
- 子类别(一个 NSDictionaries 数组,其中每个字典可以有一个特定键的值数组)
这是我连接所有内容后我的 requestString 的样子:
?inspection[name]=inspection_name&inspection[address]=address_value&...&property[type]=property_type&....&subcategories[0][questions][0][title]=title_value&subcategories[0][questions][1][title]=title_value1&...&subcategories[1][questions][0][title]=title_valuen&...
对于检查和属性数组,我也尝试过inspection[][name]=inspection_name, property[][address]=property_address
当我形成那个 requestString 时,我正在使用这个方法转义每个参数:
static NSString *escapeParam(NSString *param) {
param = [param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
param = [param stringByReplacingOccurrencesOfString:@"&" withString:@"%26"];
param = [param stringByReplacingOccurrencesOfString:@"=" withString:@"%3D"];
param = [param stringByReplacingOccurrencesOfString:@"?" withString:@"%3F"];
return param;
}
因此,像subcategories[0][questions][0][title]=title_value
变成subcategories%5B0%5D%5Bquestions%5D%5B0%5D%5Btitle%5D=title_value
显然我做错了,不知道如何正确形成这个 requestString 因为当我触发请求时,我得到 HTTP Error 400 Bad request 作为响应。
有人可以指出我正确的方向吗?
非常感谢!