【发布时间】:2023-04-06 12:01:01
【问题描述】:
我正在尝试在 POST 中发送 JSON,但我收到一个错误:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项。
如果我通过 Postman(用于测试请求的浏览器应用程序)发送此数据 - 它工作正常(返回数据)
NSString*params = @"{ \"devID\" : \"I:73899EAB-BB4F-4AE5-A691-8505E6AF0C3A\", \"msisdn\": \"+380503424248\"}";
NSURL* url = [NSURL URLWithString:@"https://link.privatbank.ua/dms/gpsMobile/commonSMART/init?app=gpsMobile"];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = [params dataUsingEncoding:NSUTF8StringEncoding];
NSURLResponse *response;
NSError *error;
NSData *jsonData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSDictionary *results = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error] : nil;
【问题讨论】:
-
您是否在响应请求时收到此错误?
-
顺便说一句,如果您发送 JSON 请求,约定建议您的请求指定它正在这样做,例如
[request setValue:@"application/json" forHTTPHeaderField:@"Content-type"];。有时会编写 Web 服务代码来验证请求的内容类型是否符合预期。 -
是的!我的代码中有很多错误,但您的帮助很有帮助,我已经纠正了它并得到了正确的请求。