我尝试将新数据发布到ws但每次都发生错误 我需要
每次1通过用户名和密码
使用带API KEY的AES256对数据进行2次编码
代码:
- (IBAction)AddTicket:(id)sender {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
NSURL *URL = [[NSURL alloc] initWithString:@"http://dev.enano-tech.com/api/Ticket"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"id",@"1",@"idProject",@"1",@"idTicketType",@"nameo",@"name",@"nameo",@"description", @"1",@"idStatus",@"2016-06-23 15:20:49",@"creationDateTime", nil];
NSData *dataToPost = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
NSData *final =[dataToPost AES256EncryptWithKey:@"02b6e206868660a0d59d2e51a11fdcd6"];
//
NSLog(@"postData1e == %@",final);
NSLog(@"final %@",dataToPost);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[request setHTTPMethod:@"POST"];
[request addValue:@"CURLAUTH_BASIC" forHTTPHeaderField:@"CURLOPT_HTTPAUTH"];
[request addValue:@"Basic YWRtaW46YWRtaW5hZG1pbg==" forHTTPHeaderField:@"authorization"];
[request addValue:@"admin:adminadmin" forHTTPHeaderField:@"CURLOPT_USERPWD"];
[request addValue:@"true" forHTTPHeaderField:@"CURLOPT_RETURNTRANSFER"];
[request addValue:@"false" forHTTPHeaderField:@"CURLOPT_SSL_VERIFYPEER"];
[request addValue:@"POST" forHTTPHeaderField:@"CURLOPT_CUSTOMREQUES"];
[request addValue:@"true" forHTTPHeaderField:@"CURLOPT_POST"];
[request addValue:@"false" forHTTPHeaderField:@"CURLOPT_POSTFIELDS"];
[request setHTTPBody:final];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSString *str = [[NSString alloc]initWithData:final encoding:NSUTF8StringEncoding];
NSLog(@"data %@",data);
NSLog(@"respoce %@",response);
NSLog(@"result == %@",result);
}];
[postDataTask resume];
}
响应:
2016-08-02 15:06:47.768投影仪[3936:1619429]结果== {"错误":" API查询无效","消息&#34 ;:"'数据'没有为方法POST正确编码。请求正确的API KEY"}
这是api的文档:
答案 0 :(得分:0)
您的网络服务器缺失"数据"来自网站。要解决此问题,您需要将该字段添加到表单中或找到正确的字段名称(区分大小写)