gpt4 book ai didi

iOS : Message = "An error has occurred." in JSON POST

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:39:07 25 4
gpt4 key购买 nike

在 java 中工作,而不是在 objective c 中。尽管处于“Json 数据已发布”状态,但数据并未保存在数据库中。我应该以如下所示的格式发送数据以获得 json 响应

{
"ProjID": "78",
"Uid": "12",
"EmailID": "ratnam_nv@yahoo.com",
"ProjectInviterFQAnswers": [{
"slno": "1",
"Answer": "a1",
"order": "1",
"flag": "F"
}, {
"slno": "2",
"Answer": "a1",
"order": "2",
"flag": "F"
}, {
"slno": "1",
"Answer": "a1",
"order": "2",
"flag": "Q"
}
]
};

我正在以如下所示的格式发送登录时获得的词典。

enter image description here

上面的代码和我日志截图的区别是';'在每个键值对之后,因此我得到了标题中提到的响应。

有任何纠正代码/逻辑的建议吗?这是我编写的代码。

 NSError *error = Nil;
NSOperationQueue *queue = [[NSOperationQueue alloc] init];

NSDictionary *dictionaryArray1 = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"slno", @"a1", @"Answer", @"1", @"order", @"F", @"Flag", nil];

NSDictionary *dictionaryArray2 = [NSDictionary dictionaryWithObjectsAndKeys:@"2", @"slno", @"a1", @"Answer", @"1", @"order", @"F", @"Flag", nil];

NSDictionary *dictionaryArray3 = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"slno", @"a1", @"Answer", @"2", @"order", @"Q", @"Flag", nil];

NSArray *arrayAnswer = [NSArray arrayWithObjects:dictionaryArray1, dictionaryArray2, dictionaryArray3, nil];

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"78", @"ProjID", @"12", @"UID", @"ratnam_nv@yahoo.com", @"EmailID", arrayAnswer, @"ProjectInviterFQAnswer", nil];

NSLog(@"Dictionary that is being sent to URL is = %@", dictionary);

NSURL *url = [NSURL URLWithString:@"http://cnapi.iconnectgroup.com/api/QRCodeScan/SaveAnswers"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

NSData *requestData = [NSJSONSerialization dataWithJSONObject:dictionary options:kNilOptions error:&error];

[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
if(error || !data)
{
NSLog(@"JSON Data not posted!");
[activity stopAnimating];
UIAlertView *alertMessage = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Data not saved" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertMessage show];
}
else
{
[activity startAnimating];
NSLog(@"JSON data posted! :)");
NSError *error = Nil;
NSJSONSerialization *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

NSLog(@"Response is %@", jsonObject);
[activity stopAnimating];
}

}];
}

最佳答案

这就是我解决自己问题的方法。

 NSString *str = @"{\"ProjID\": \"78\",\"Uid\": \"12\",\"EmailID\": \"ratnam_nv@yahoo.com\",";
str = [str stringByAppendingString:@"\"ProjectInviterFQAnswers\": ["];
str = [str stringByAppendingString:@"{\"slno\": \"1\",\"Answer\": \"a1\",\"order\": \"1\", \"flag\": \"F\"},"];
str = [str stringByAppendingString:@"{\"slno\": \"2\",\"Answer\": \"a1\",\"order\": \"1\",\"flag\": \"F\"},"];
str = [str stringByAppendingString:@"{\"slno\": \"1\",\"Answer\": \"a1\",\"order\": \"2\",\"flag\": \"Q\"}"];
str = [str stringByAppendingString:@"]}"];
NSLog(@"String is === %@", str);

NSURL *url = [NSURL URLWithString:@"http://cnapi.iconnectgroup.com/api/QRCodeScan/SaveAnswers/"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];

NSData *requestData = [str dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[connection start];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
if(error || !data)
{
NSLog(@"JSON Data not posted!");
[activity stopAnimating];
UIAlertView *alertMessage = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Data not saved" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertMessage show];
}
else
{
[activity startAnimating];
NSLog(@"JSON data posted! :)");
NSError *error = Nil;
NSJSONSerialization *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSLog(@"Response is %@", jsonObject);
}
}];

关于iOS : Message = "An error has occurred." in JSON POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com