我知道如何做到這一點,它非常簡單。如何在NSDictionary中發佈NSDictionary的NSArray沒有問題?
問題是它不起作用。
這是我使用過帳數據的功能:
- (void)updateWebsitesUsingParameters:(NSDictionary *)parameters;
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"http://notreal/updateWebsites.php"
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
//...
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//...
}];
}
下面是參數:
NSDictionary *parameters = @{@"type" : @"0",
@"credentials" : @{@"email" : @"[email protected]", @"password" : @"notreal"},
@"device" : @{@"ID" : @"8588107756600540", @"numberOfSessions" : @"0", @"name" : @"Nick's iMac"},
@"websites" : @[@{@"title" : @"Google", @"URL" : @"http://www.google.com"}, @{@"title" : @"Yahoo", @"URL" : @"http://www.yahoo.com"}]};
這裏是獲取保存在MySQL領域:
[{URL = "http://www.google.com";},{title = Google;},{URL = "http://www.yahoo.com";},{title = Yahoo;}]
這太瘋狂了!
- 我已經成功地保存一本字典內的多個屬性的MySQL的場內字典的數組的JSON - 或短的什麼,我想在這裏做 - 使用PHP腳本,針對一不同的目的和它的作品,沒有問題。
- 我使用相同的PHP代碼將其保存到MySQL字段,因此它不是PHP的錯誤。
- 我使用AFNetworking完成的所有其他保存/檢索功能都能正常工作。
這工作:
@[@{@"title" : @"Google"}, @{@"title" : @"Yahoo"}]
這不:
@[@{@"title" : @"Google", @"URL" : @"http://www.google.com"}, @{@"title" : @"Yahoo", @"URL" : @"http://www.yahoo.com"}]
這裏的響應:
{
websites = (
{
URL = "http://www.google.com";
},
{
title = Google;
},
{
URL = "http://www.yahoo.com";
},
{
title = Yahoo;
}
);
}
INSANE!
由於某些原因,如果我添加一個額外的屬性,它會崩潰。
這必須是AFNetworking錯誤,因爲它沒有任何意義。
編輯:
我能:
讓兩個MySQL字段:websiteTitles,websiteURLs。
將其另存爲一個字符串:「Google; http://www.google.com」,然後將其分開,但這會破壞使用JSON的目的。
發送一半切碎的參數:websteTitles,websiteURLs
全部都是可怕的,任何想法?
編輯2:
我跑了幾個測試:
,如果數組有1或2項仍然表現得像這沒關係。
我試了一下rob180建議和--as expected--它AFNetwokring的錯:
{
websites = (
{
URL = "http://www.google.com";
},
{
title = Google;
},
{
URL = "http://www.yahoo.com";
},
{
title = Yahoo;
}
);
}
這是一個什麼樣已經從應用程序,中間沒有mysql發送實際的服務器響應。
編輯3:
REQUEST: <NSMutableURLRequest: 0x7f9352d467e0> { URL: http://notreal/updateWebsites.php }
的HTTPBody看起來是這樣的:
<63726564 656e7469 616c735b ... 653d30>
我如何可以解碼此?我使用的是AFHTTPRequestSerializer。也許,如果我將其更改爲AFJSONRequestSerializer它會解決這個問題,但我真的不想這樣做,因爲我已經用這種方法編寫了很多方法。
嘗試將發送給服務器的參數作爲響應發送。這樣你可以看到問題是在iOS還是PHP。 – rob180
你有沒有試過設置requestSerializer? – vichevstefan
不,我不需要爲10個以上的方法設置requestSerializer。現在,也許我需要它,但是如何?什麼設置會解決這個問題? – Vulkan