android webview自定义,android – 如何添加自定义标头以在webview上发布请求

我现在遇到关于webview上的帖子请求的问题.

下面是这样的情况:当我的webview加载了一个登录页面,并且里面有一个表单可以发出帖子请求.当我点击提交按钮时,如何为它添加一个自定义标题.

解决方法:

我遇到了需要自己实现这样一个功能的问题,所以我发布了一个代码片段给将来遇到同样问题的人.

我肯定建议使用OkHttp,但原则(在成功回调中发出请求并将html加载到浏览器中)应该与任何其他网络客户端相同.

protected void postURL(final String url, String postData) {

Request request = new Request.Builder()

.url(url)

.addHeader("Cache-Control", "max-age=0")

.addHeader("Origin", "null") //Optional

.addHeader("Upgrade-Insecure-Requests", "1")

.addHeader("User-Agent", webView.getSettings().getUserAgentString())

.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")

.addHeader("Accept-Language", Locale.getDefault().getLanguage())

.addHeader("Cookie", CookieManager.getInstance().getCookie(url))

.addHeader("X-Requested-With", BuildConfig.APPLICATION_ID)

.post(RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), postData))

.build();

new OkHttpClient().newCall(request).enqueue(new Callback() {

@Override

public void onFailure(Call call, IOException e) {

Timber.e(e.getMessage());

}

@Override

public void onResponse(Call call, final Response response) throws IOException {

final String htmlString = response.body().string();

webView.post(new Runnable() {

@Override

public void run() {

webView.clearCache(true);

webView.loadDataWithBaseURL(url, htmlString, "text/html", "utf-8", null);

}

});

}

});

}

请注意,大多数这些标头不是必需的,但可以用作重建webview本身发出的原始请求的指南

标签:android,webview,header

来源: https://codeday.me/bug/20190928/1825454.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值