-(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];
我的值是一个数组,每次按下一个操作按钮就会改变。如何发布这个数组? 感谢
答案 0 :(得分: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