2013-03-15 94 views
0
-(void)makeSecondRequestWithQuestionID:(NSString*)questionID value:(NSString*)value andArray:(NSArray*)array{ 
NSURL * url = [NSURL URLWithString:URL]; 
ASIFormDataRequest * request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:questionID forKey:@"question_id"]; 
[request setPostValue:value forKey:@"value"]; 
[request setPostValue:[array JSONRepresentation] forKey:@"array"]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

我的值是一個數組,每次按動作按鈕時都會改變。如何發佈這個數組? 感謝將json數組發送到一個url

+0

你可以張貼整個代碼????您正在嘗試發送數據? – 2013-03-16 14:53:06

+0

請檢查我已發佈的代碼。謝謝 – Machete 2013-03-16 15:17:07

回答

0

你必須正確地設置爲POST請求的HTTP標頭:

NSURL *url = [NSURL URLWithString:@"http://localhost:8080/get-game"]; 
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
    [request setHTTPMethod:@"POST"]; 
    //this is your array. Init it as you need 
     NSArray *array; 
    //we need to create dict with your data and key 
     NSDictionary *jsonDict = [NSDictionary dictionaryWithObject:array forKey:@"array"]; 
     NSError *err; 
    //data which will be actually sent to server in post request 
     NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONReadingAllowFragments error:&err]; 
    //now we need to tell that we send json data in our POST request. 
     [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
     [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
     [request setValue:[NSString stringWithFormat:@"%d", [jsonData length]] forHTTPHeaderField:@"Content-Length"]; 
     [request setHTTPBody:jsonData]; 
    //lets verify what will be sent  
     NSLog(@"request: %@", request); 
     NSLog(@"request headers: %@", [request allHTTPHeaderFields]); 
     NSLog(@"requet body: %@", [[NSString alloc] initWithData:[request HTTPBody] encoding:NSUTF8StringEncoding]); 
     //send it! 
     NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; 
    //continue with delegate methods for NSURLConnection