之前公司要求在一个webview中调用一个后台的接口,请求时需要一些参数。正常情况下请求都是GET请求,但是对于表单提交却要求是POST请求,因此当我们重新创建一个Request来reload请求时,会自动变成GET请求,导致POST参数丢失。解决方法如下:
在NSMutableURLRequest类中提供了两个这样的属性
@property (nullable, readonly, copy) NSString *HTTPMethod;
@property (nullable, readonly, copy) NSData *HTTPBody;
这样我们就可以在webview进行POST请求。
具体操作如下:
NSURL *url = [NSURL URLWithString: @"需要填写自己的URL"];
NSString *body = [NSString stringWithFormat: @"arg1=%@&arg2=%@", @"val1",@"val2"]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding]];
[webView loadRequest: request];