1
我有一個簡單的問題,同時向服務器請求更新名稱字段。我需要在這個格式後的一些數據: -發佈數據格式不同,那麼我需要
{"api_token"=>"api", "device_token"=>"device", "user"=>{"name"=>"mohit"}, "id"=>"4"}
但是,當我試圖發佈此格式的東西在郵寄: -
{"user"=>"(\n {\n name = ChangeName;\n }\n)", "api_token"=>"api", "device_token"=>"device", "id"=>"4"}
我無法弄清楚如何改變我的代碼生成正確的請求。這是我正在使用的代碼。
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://localhost:3000/users/4?api_token=api&device_token=device"]];
NSMutableDictionary *dict= [NSMutableDictionary dictionaryWithObjectsAndKeys: @"Mike",@"name", nil];
NSArray *array=[[NSArray alloc]initWithObjects:dict, nil];
[request setPostValue:array forKey:@"user"];
[request setRequestMethod:@"PUT"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request startAsynchronous];
請讓我知道,如果我需要發佈一些更多的代碼片段。
是的確實,我得到了一個帶有字典的數組的可打印格式。我試圖直接從終端打,當我看到控制檯服務器讀取它爲「用戶」=> {「name」=>「mohit」}但當我試圖發送相同的使用ASIHttpRequest它顯示{「用戶「=>」(\ n {\ n名稱= ChangeName; \ n} \ n)「。現在你可以不用擔心了,我只需要將{「user」=>「(\ n {\ n name = ChangeName; \ n} \ n)」轉換爲「user」=> {「name」=>「mohit」 }。任何幫助? – Rahul
對於我的應用程序,「user」=> {「name」=>「mohit」} <-----這個表單給出了正確的響應成功。 – Rahul
我不明白你的服務器實際需要什麼。 HTTP只允許鍵值對的平坦列表,而不是層級。 ASIFormDataRequest將採用一個字典{「foo」=>「fa」; 「bar」=「ba」}並將其轉換爲HTTP查詢字符串?foo = fa&bar = ba。獲取層級到查詢字符串的唯一方法是通過發送JSON作爲值 – 2011-08-30 18:41:47