iOS アプリ用に PHP で開発された Web サービスを使用しています。PHP開発者が指定したように、POST本体にパラメーターを送信しました。しかし、必要な形式で POST 本文で送信することはできません。PHP開発者が提供する形式は次のとおりです
Array
(
[key] => ecwrerwe3453453453454cea
[secret] => 45d77657657567jghjb6ef
[product] => Array
(
[name] => mobile
[id] => 3
[desc] => nokia c 5
[price] => 5
)
[spec] => Array
(
[0] => Array
(
[key] => color
[value] => ping
)
)
)
サーバーに送信しているものは以下のとおりです
{
key = c435435t3tergs680;
product = (
{
id= 3;
desc = "Test desc";
name = "Nokia mobile";
"price" = "987.65";
}
);
secret = 43ytehgrdghd1ee0d8;
specs = (
(
{
key = aaaaaaaaa;
value = aaaa;
}
),
(
{
key = bbbbbbbbbb;
value = bbbbb;
}
)
);
}
上記の POST body をビルドするために、iOS で以下のコードを使用しています
NSMutableArray *specsArray = [[NSMutableArray alloc]init];
for (ProductSpecification *prodSpecs in self.newProduct.specificationArray)
{
NSMutableDictionary *specsDict = [[NSMutableDictionary alloc]init];
[specsDict setValue:prodSpecs.name forKey:SPECS_NAME_KEY];
[specsDict setValue:prodSpecs.value forKey:SPECS_VALUE_KEY];
NSArray *array = [NSArray arrayWithObjects:specsDict, nil];
[specsArray addObject:array];
}
NSMutableArray *productArray = [[NSMutableArray alloc]init];
NSMutableDictionary *productDict = [[NSMutableDictionary alloc]init];
[productDict setValue:self.newProduct.name forKey:NAME_KEY];
[productDict setValue:self.newProduct.prodId forKey:ID_KEY];
[productDict setValue:self.newProduct.productDescription forKey:DESC_KEY];
[productDict setValue:self.newProduct.price forKey:PRICE_KEY];
[productArray addObject:productDict];
NSMutableDictionary *params = [[NSMutableDictionary alloc]initWithObjectsAndKeys:productArray,NEW_PRODUCT_ARRAY_NAME_KEY,specsArray,SPECS_ARRAY_KEY,nil];
// Get the API keys & append it in params
NSDictionary *keysDictionary = [kUserDefaults getAPIKeys];
[params setValue:[keysDictionary objectForKey:API_KEY] forKey:API_KEY];
[params setValue:[keysDictionary objectForKey:API_SECRET_KEY] forKey:API_SECRET_KEY];
NSLog(@"Params Dict: %@",params);
必要な形式のデータをサーバーに送信できません。nsdictionary の代わりにキー値を配列で送信するにはどうすればよいですか?
iOSコードで何が問題になっているのか誰か教えてもらえますか?
どんな種類の助けも大歓迎です。前もって感謝します。