首先说下我遇到的问题:在项目中加载的是 HTML5 ,用户退出时发送的请求是 DELETE 请求,服务器使用的是 Ruby ,Ruby 本身并不能实现 DELETE 方法(具体看这里),大概来说它就是 POST 方法,所以我在 UI/WKWebView 中使用 POST 方法就可以了,其实 UI/WKWebView 默认 HTTP 请求是 GET 请求,所以这里可以改用 POST 方法。
代码:
+ (void)HTTPPOSTMethodWithRequest:(NSURLRequest *)request URL:(NSString *)urlString blockWithReq:(requestBlock)requestBlock {
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
if ([request.HTTPMethod isEqualToString:@"POST"]) {
req.HTTPBody = request.HTTPBody;
req.HTTPMethod = request.HTTPMethod;
}
requestBlock(req);
}
核心代码:
NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];
if ([request.HTTPMethod isEqualToString:@"POST"]) {
req.HTTPBody = request.HTTPBody;
req.HTTPMethod = request.HTTPMethod;
}
这样加载的页面发送的就是 POST 请求了,我的问题就是这样解决的。