我想使用下面的代码将数据传递给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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。