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]; 

我的值是一个数组,每次按下操作按钮时都会改变。如何发布这个数组?谢谢

4

1 回答 1

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
于 2013-03-16T16:22:55.510 回答