通过iOS将数据发送到POST JSON Web服务

我想使用下面的代码将数据传递到POST JSON Web服务。

NSString *urlString = @"http://3.10.204.99:9090/service/outage/data/getShortFormData"; NSDictionary *inputData = [[NSDictionary alloc] initWithObjectsAndKeys: @"1020", @"outageId", @"Alex", @"customerName", nil]; NSError *error = nil; NSData *jsonInputData = [NSJSONSerialization dataWithJSONObject:inputData options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonInputString = [[NSString alloc] initWithData:jsonInputData encoding:NSUTF8StringEncoding]; [self checkWithServer:urlString jsonString:jsonInputString]; 

 -(void)checkWithServer:(NSString *)urlname jsonString:(NSString *)jsonString{ NSURL *url1 = [NSURL URLWithString:urlname]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url1]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"charset=utf-8" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]]; NSURLResponse *response; NSError *err; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; id jsonResponseData = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:nil]; NSDictionary *jsonResponseDict; if ([jsonResponseData isKindOfClass:[NSDictionary class]]) { jsonResponseDict = jsonResponseData; } else { // Error-handling code } jsonResponseData = [jsonResponseDict objectForKey:@"d"]; if (jsonResponseData == nil) { // Server may have returned a response containing an error // The "ExceptionType" value is returned from my .NET server used in sample id jsonExceptioTypeData = [jsonResponseDict objectForKey:@"ExceptionType"]; if (jsonExceptioTypeData != nil) { NSLog(@"%s ERROR : Server returned an exception", __func__); NSLog(@"%s ERROR : Server error details = %@", __func__, jsonResponseDict); } } } 

执行此代码时,不会发生错误,但数据不会更新。

任何对此的帮助将会感到遗憾。

谢谢你们。

尝试下面的代码

 +(NSData *)postDataToUrl:(NSString*)urlString:(NSString*)jsonString { NSData* responseData = nil; NSURL *url=[NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; responseData = [NSMutableData data] ; NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url]; NSString *bodydata=[NSString stringWithFormat:@"data=%@",jsonString]; [request setHTTPMethod:@"POST"]; NSData *req=[NSData dataWithBytes:[bodydata UTF8String] length:[bodydata length]]; [request setHTTPBody:req]; NSURLResponse* response; NSError* error = nil; responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; NSLog(@"the final output is:%@",responseString); return responseData; } 

尝试这个:

 [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];