发送数据到服务器和响应是:{“消息”:“发生错误。”}

我已经尝试了很多发布数据到服务器的方法,但没有一个工作,只有响应得到的是:

{“消息”:“发生错误。”}

下面是我最近试过的方法。

NSString *cust_id=@"2"; NSString *Prod_ID=@"18"; NSString *Vend_ID=@"1"; NSString *Quant=@"2"; NSString *post =[NSString stringWithFormat:@"customerid=%@&productid=%@&vendorid=%@&quantity=%@",cust_id,Prod_ID,Vend_ID,Quant]; NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; NSURL *url = [NSURL URLWithString:@"http://dealnxt.com/api/addtocart"]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; [theRequest setHTTPMethod:@"POST"]; [theRequest setHTTPBody:postData]; NSURLResponse *response; NSError *error; NSData *urlData=[NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; NSLog(@"str:%@",str); 

您正在查询string中传递数据,因为您要发布的数据应该作为转换为数据的NSDictionary对象传递。

谢谢@ Tj3N,你的回答很有帮助。

只需要改变编码types。 从NSASCIIStringEncoding NSUTF8StringEncoding。 以下是更新的代码。

 NSString *post =[NSString stringWithFormat:@"customerid=%@&productid=%@&vendorid=%@&quantity=%@",cid,PID,VID,QQ]; NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]; NSURL *url = [NSURL URLWithString:@"URL"]; NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; [theRequest setHTTPMethod:@"POST"]; [theRequest setHTTPBody:postData]; NSURLResponse *response; NSError *error; NSData *urlData=[NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]; NSLog(@"str:%@",str); 

BASE_URL = PASS_YOUR_URL _params = parameters // AS NSMutableDictionary试试这个。

  NSMutableDictionary *params = [[NSMutableDictionary alloc]init]; [params setValue:YOUR_VALUE forKey:@"cust_id"]; // here pass your field that you want to pass as parameter. [params setValue:YOUR_VALUE forKey:@"Prod_ID"]; NSString *url = [BASE_URL stringByAppendingString:_action]; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:url]]; manager.requestSerializer = [AFHTTPRequestSerializer serializer]; manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil]; [manager POST:url parameters:_params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"response = %@", responseObject); if( _success ) { _success( responseObject ) ; } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { NSLog(@"error = %@", error); if( _failure ) { _failure( error) ; } }];