上面的问题通过测试发现在iOS11之后已修复,但是App还要支持iOS11之前的系统,所以还是需要解决这个问题。
创建一个form表单,将需要post的数据填到表世升单,模拟form表单提交实现数据传输。
新建一个头文件 WKWebViewFormDefine.h,里面定义了一个宏:
上面定义了一个my_post方法,需要传入两个参数:path和params,path是请求的URL的字符串,path是放到body中的参数,函数实现创建form表单并填入params的参数,最后commit提交,实现post请求。这个宏网上基本都能找到,但是实际使用中,当params中的汉字会出现乱码,上面已经补充, 给from设置 accept-charset 问题解决。
1、请求的url
2、需要传入的参数字典
3、将参数字典转成Json字符串
4、包装成需要执行的 js 字符串,注意 my_post 是宏定义中的方法名,POST_JS是宏定义名称,需要一一对应!
5、执行js
到这里基本实现完成了。
上面实现中用到的函数
c#我不太懂啊。我用的是php的curl方法模拟登陆的,我有点记不清了,不过request payload好像不是问题的关键,造成post失败的原因应该是ajax进行传输时缺少头文件,我最后的解决方法是加了头文件,里面最关键源盯的就是下面这两个。你看下你的抓包数据有没有这两个,有的雹锋和话在你post的时候加上这两个头文件,保险起见连其他一些简单的头信息也加上。'X-MicrosoftAjax:Delta=true',
'X-Requested-With:XMLHttpRequest'
注:Accept-Encoding:gzip,deflate 这个不用加,gzip会让返回基轿值变成乱码的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)