【发布时间】:2015-06-13 17:26:33
【问题描述】:
我希望有人可以帮助我,如果有人能解答我的问题,我将不胜感激 我正在开发一个 iOS 应用程序,它向运行 Laravel 框架的服务器发出一些 HTTP 请求 服务器公开了一些我使用 HTTP POST 方法调用并在 HTTP 正文中发送 JSON 的服务 我以这种方式从 NSMutableDictionary 对象开始创建 JSON
//Serialize parameters
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters
options:kNilOptions
error:&error];
然后我评估我的 HTTP 请求
// Prepare the request
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
[request setValue:[NSString stringWithFormat:@"%d", (int)[jsonData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:jsonData];
问题是有时服务器无法正确接收我的数据 有时 Laravel 会检测到 GET 请求而不是 POST 请求 其他时候 Laravel 会收到我的 JSON,但格式不同,无法处理(例如缺少引号、半列、逗号等) 这是随机发生的,确实,如果我在 30 分钟后再次尝试,它会再次起作用
此外,这只发生在 iOS 上(因为我们也在开发同一应用程序的 android 版本,我们对此没有任何问题)
提前感谢任何会帮助我的人 塔雷克
【问题讨论】:
-
您是否使用过 Wireshark 或 Fiddler 等工具检查流量?网络上的请求格式不正确,还是服务器对良好的请求做了一些奇怪的事情?
-
嘿,你的问题解决了吗?我在这里遇到同样的问题。 Laravel 不会只识别我的 POST 请求。 GET、PUT、DELETE 工作正常,这只发生在 iOS 上