首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将javascript代码转换为android代码-如何在POST请求中添加referrer?

将JavaScript代码转换为Android代码是通过使用WebView来实现的。WebView是Android提供的一个控件,可以加载并显示网页内容,同时也可以执行JavaScript代码。

要在POST请求中添加referrer,可以通过以下步骤实现:

  1. 创建一个WebView对象,并设置WebView的相关属性,例如布局、大小等。
  2. 启用JavaScript执行功能,通过调用WebView的setJavaScriptEnabled方法来实现。
  3. 创建一个WebViewClient对象,并重写shouldOverrideUrlLoading方法。在该方法中,可以拦截WebView的请求,并对请求进行处理。
  4. 在shouldOverrideUrlLoading方法中,判断请求的类型是否为POST请求,如果是,则可以通过WebView的loadUrl方法来加载请求的URL,并在URL中添加referrer参数。
  5. 构建带有referrer参数的URL,可以使用Uri类来实现。例如,可以使用Uri.parse方法解析请求的URL,然后使用Uri.Builder类来添加referrer参数。
  6. 最后,通过WebView的loadUrl方法加载带有referrer参数的URL,即可在POST请求中添加referrer。

以下是一个示例代码:

代码语言:txt
复制
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);

webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.startsWith("http://") || url.startsWith("https://")) {
            // 判断是否为POST请求
            if (view.getHitTestResult().getType() == WebView.HitTestResult.SRC_POST_TYPE) {
                // 构建带有referrer参数的URL
                Uri uri = Uri.parse(url);
                Uri.Builder builder = uri.buildUpon();
                builder.appendQueryParameter("referrer", "your_referrer_value");

                // 加载带有referrer参数的URL
                view.loadUrl(builder.toString());
                return true;
            }
        }
        return false;
    }
});

webView.loadUrl("your_url");

在上述代码中,需要将"your_referrer_value"替换为实际的referrer值,"your_url"替换为实际的请求URL。

这样,当WebView加载的页面中发起POST请求时,会自动添加referrer参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

web内容如何保护:如何有效地保护 HTML5 格式的视频内容?

JavaScript代码如何防盗链?HTTP Referer在http协议,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。...不幸的是,任何人只要通过查看网页源代码或者调试工具就可以轻松看到它,他们可以复制JavaScript代码,为自己使用,甚至调试JavaScript,修改JavaScript代码的功能。...由于JavaScript关键字仍然暴露,黑客仍然可以理解代码,而在浏览器,黑客可以调试并知道JavaScript的变量。混淆的JavaScript代码仍然可以被浏览器复制和查看。...现代播放器的技术原理《视频直播技术详解——现代播放器原理》典型的播放器分解为:UI、多媒体引擎和解码器。...采用 BSD 授权参考文章:精读加密媒体扩展(Encrypted Media Extensions,EME) https://juejin.cn/post/6844903503907815432载本站文章

2K40

Document.Referrer丢失的几个原因

来文自:www.imkevinyang.com/2010/01/document-referrer丢失的几个原因.html Referrer的重要性 HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页...在Javascript,我们可以通过document.referrer来获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。...但是,出于各种各样的原因,有时候Javascript读到的referrer却是空字符串。下面总结一下哪些情况下会丢失referrer。...代码如下: var referrer = document.referrer; if (!...IE下,通过客户端Javascript的document.referrer读取到的值是空的,但是如果你使用流量监控软件看一下的话,你会发现,实际上HTTP请求的Referer报文头却是有值的,这可能是

4K20

Spring Security 之防漏洞攻击

CSRF 和会话超时 通常,预期的CSRF令牌存储在会话。这意味着一旦会话到期,服务器找不到预期的CSRF令牌并拒绝HTTP请求。...以下是一些解决办法: 减少超时的最佳方法是在表单提交时使用JavaScript请求CSRF令牌。然后使用CSRF令牌更新表单并提交。 另一种选择是使用一些JavaScript,让用户知道会话即将到期。...如果默认值不满足您的需要,您可以轻松地从这些默认值删除、修改或添加标题。...站点标记为HSTS主机的一种方法是主机预加载到浏览器。另一种是添加Strict-Transport-Security头到响应头中。...Custom Headers SpringSecurity有一些机制,可以方便地更常见的安全标头添加到应用程序。它还提供了钩子来支持添加自定义头。

2.3K20

() 网站统计的数据收集原理及实现

数据收集原理分析 简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(打开某网页、点击某按钮、商品加入购物车等)及行为附加数据(某下单行为产生的订单金额等)。...当网页被打开,页面的埋点javascript片段会被执行,用过相关工具的朋友应该知道,一般网站统计工具都会要求用户在网页中加入一小段javascript代码,这个代码片段一般会动态创建一个script...埋点脚本执行阶段 若要使用谷歌分析(以下简称GA),需要在页面插入一段它提供的javascript片段,这个片段往往被称为埋点代码。下面是我的博客中所放置的谷歌分析埋点代码截图: ?...4、请求一个后端脚本,信息放在http request参数携带给后端脚本。 这里唯一的问题是步骤4,javascript请求后端脚本常用的方法是ajax,但是ajax是不能跨域请求的。...这种后端脚本一般要完成以下几件事情: 1、解析http请求参数的到信息。 2、从服务器(WebServer)获取一些客户端无法获取的信息,访客ip等。 3、信息按格式写入log。

1.9K30

java学习与应用(4.6)--过滤器、监听器、JQuery、AJAX、JSON等

使用JQuery获取元素JQuery对象(\$("#id"),\$("tag")等选择器),然后可以转换为js对象,两种对象都可以当做数组使用,方法不通用,但是前者更方便,拥有内容修改方法html等...CRUD操作:append父元素子元素添加到内部,并位于末尾(prepend方法添加到内部并位于开头)。appendTo,prependTo方法子元素方法放到父元素内部等。...可以使用原生的js实现方式(使用原始js代码向服务器异步请求,使用xmlhttp的方法,见手册即可)和JQuery的实现方式使用:\$.ajax(),\$.get \$.post。...\$.get发送get请求,分别传入url,date,callback,type进行设置。\$.post发送post请求,类似get方法。type可以发送给客户端json而不被认为是字符串。...方法:writeValue传入File/Writer/OutputStream和obj,objjson并填充到指定的位置。writeValueAsString传入对象输出json字符串。

5.4K10

修复android下webView控件的总结

游戏中有一个收集玩家问题反馈的网页,很早之前就有同事反映说android在游戏无法上传附件,在浏览器是可以正常使用的。...既然是网页,而且只在游戏中才出现,那第一步你要先会使用Fiddler来拦截请求,定位出问题的代码在哪里。...你可以参考这篇文章,抓包已经讲的已经非常详细了,Step By Step  Fiddler (四) 实现手机的抓包 在Fiddler中找到请求的网页链接,点击查看后响应的文本使用文本工具(我是使用的EditPlus...bug,最后我是在一篇文章猛然发现可能我目前使用的代码写的有问题(离职人员留下的),这篇文章链接在这里: android开发WebView的使用(附完整程序) ?...但又要写一些代码,所以又想先再找找有没有其它办法… 之后我仔细查看了http的上传请求,尝试在ajax.ajaxFileUpload的success方法延时调用history.go(-1),发现界面错位了

1.5K20

科普系列——如何解释什么是 AJAX?

其实简单概括下,AJAX就是一种利用 JavaScript 向服务端发起请求,并获得服务端响应的技术。它的特点是异步请求,局部刷新。...(果然生活处处皆学问) 那么我们又该如何在代码中使用这个XHR对象呢?...,这里同样举出一个最简单的例子 getApiData:function() { //设置请求路径 var url = "XXXXXX"; // 发送请求:数据返回到一个回到函数...但是也有成为用户的一个不安全因素,比如有些网站直接 sessionid 或是 token 放在地址栏里传递的,会原样不动地当作 Referrer 报头的内容传递给第三方网站。...我们知道前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据。而常用的传参方式有两种,其一是Form Data,另一个就是Request Payload了。

80320

CSP(Content Security Policy 内容安全策略)

作用 防止运营商劫持(使用script-src限制指定域的JS代码才能运行,避免运营商插入代码) 防止XSS攻击(很多XSS攻击会去引用其他站点恶意代码在本站执行) 防止点击劫持 防止Android WebView...sandbox report-uri /report-uri 定义的策略如果不允许时,POST一个请求到该地址 指令值 值 说明 * 允许任何内容 ‘none’ 不允许任何内容 ‘self’ 运行同源内容...https://wufeifei.com 允许加载https指定域 https: 允许加载https资源 ‘unsafe-inline’ 允许加载内联资源 ‘unsafe-eval’ 允许动态加载js,eval...,只不过会POST一个Content-Type:的JSON请求到csp-report.html上,格式如下: {"csp-report":{ "document-uri":"http://wufeifei.com.../about",// 触发页面 "referrer":"http://wufeifei.com", // 触发页面的来源页 "violated-directive":"script-src

2.1K40

Java数据采集-7.Ajax无刷新请求(翻页-3)

技术重点: HttpClient 模拟请求 FastJson 处理Json格式的数据 (由于此处需要模拟Post请求,并且包含请求头信息和参数,Jsoup已经无法满足需求,其主要适用于数据解析,故此代码使用...本代码以来多个Jar包,已更新在Lib。...:Post ---- 请求头(Request Header)数据如下(Cookie数据过长,有删减): Accept:application/json, text/javascript, */*; q...并不是所有的请求都需要加上述参数 不同的网站也会有不同的参数 有些动态的数据需要动态生成 和网站的安全机制有关,若发现请求获取不到数据,或返回错误的数据时,需考虑参数问题,先尝试把必须添加的参数加上,如果不行再继续添加其他参数...t:1502713725794 ctoken:bL67K02mQl16IlJizxgeicon-font 请求参数一般需要全部添加 注意区分和请求头(Request Header)的区别 注意请求参数是

74010

再谈location与history之跳转转态监控—router的两种实现模式

如果有 POST 数据提交,则会重新提交数据;如果想要刷新当前的页面,又避免 POST 数据提交,可以使用:window.location.replace( location.href );不刷新当前页面更新内容前端改变浏览器地址而不刷新页面...从HTML5开始提供了对history栈内容的操作。history.pushState()和history.replaceState()方法,他们分别可以添加和修改历史记录条目。...(1);当前页window.history.go(0);添加和修改历史记录的条目 使用history.pushState()可以改变referrer(引用),它在用户发送XMLHttpRequest请求时在...因为referrer是标识创建XMLHttpRequest对象时this所代表的window对象document的URL。...pushState()JavaScript修改浏览器URL地址栏,不刷新页面(vue、react项目服务端渲染,可以保持访问地址一致)var stateObject = {};var title = "

2.2K10

window.opener.location 安全风险讨论

在浏览器,通过 标签或者 JavaScript 的 window.open 函数,可以打开新页面。新页面的 window 对象,存在一个 opener 属性,保存对父页面的引用。...('https://imququ.com/post/about.html'); 将以上两段代码,分别生成两个不同域的页面(本文探讨安全风险,故只考虑不同域的情况)。...在大部分浏览器,通过父页面的链接打开子页面后,子页面都可以通过opener.location 父页面跳走(上面两行 JS 可以都可以跳转,不同之处是 replace 不产生历史纪录)。...Referrer 跳转,有 Referrer 不跳转,无 Referrer (注:IE 8.0 ,方案 1 和 3 默认不会跳走,但会有弹出窗口被拦截的提示。...点击链接后打开的确实是正常的登录页,但几秒后会被替换为提前准备好的钓鱼页,如果这时没注意地址栏的变化,就很容易被钓鱼者利用。

1.7K60

Chrome 61 Beta版已支持JavaScript模块,Web支付API,Web Share API和WebUSB

Chrome 61 Beta版:JavaScript模块,桌面支付请求API,Web Share API,以及WebUSB 除非另有说明,否则下述更改适用于Android,Chrome OS,Linux...在本次发布的版本通过元素添加了对JavaScript 模块的原生支持。...桌面的Payment Request API 继去年Android宣布支持支付请求API(Payment Request API)之后,现在该API已经可用于Windows,Mac,Linux和ChromeOS...整个交易的支付请求流程。 Web Share API 为了让用户轻松地在社交网络上分享内容,开发人员之前必须手动每个社交服务的共享按钮集成到他们的网站。...这通常会导致用户无法与其实际使用的服务共享,还会因为包含第三方代码而导致的庞大的页面体积并引入安全风险。

1.6K60

WEB安全防护相关响应头(下)

: 对整个页面添加一个名为"referrer"的新 meta 值,类似: 方法三: 给页面内某个标签,如下例的 ...发起端 URL 为 https://example.com/page.html,实际发送的 referer 请求头里只有 https://example.com/; strict-origin 和 origin...其中“脚本”一词,主要指 JavaScript 脚本。JavaScript 脚本在多年的进化,使用越来越灵活,功能越来越强大,这也导致人们原本不太在意的浏览器客户端安全,变得越来越重要了。...这种设置仅适用于安全渗透测试练手,以及希望准确评估网站安全风险代码时使用。 [▲图5.JavaScript代码执行成功,看到弹窗] 测试二 设置 X-XSS-Protection:1。 这是默认设置。...这时候,浏览器会根据自己的内部过滤原则,直接无视它认为有问题的那部分代码,自动跳过这部分代码(这部分内容根本不会发给服务器端),最终我们看到的是“清理”后的效果: [▲图6.JavaScript代码没有执行成功

2.4K10

JavaScript日期处理不再难!Day.js带你飞!

日期解析包括字符串解析和日期对象解析,可以字符串转换为日期对象,也可以日期对象转换为字符串。日期格式化可以日期对象格式化为指定的字符串格式。日期操作可以进行日期的加减、比较和判断。...相对时间可以日期转换为相对于当前时间的时间差,“2分钟前”、“1小时前”等。本地化可以日期格式化为本地化的格式,包括日期格式、时间格式、相对时间格式等。...CDN 链接具有一个脚本标签,可以添加到我们的 HTML 代码的顶部或底部。...使用 RelativeTime 插件,可以日期和时间数字转换为相对语句,例如“5小时前”。...字符串日期:检查以下代码以解析字符串并以日期格式返回它: dayjs('2020-08-04T15:00:00.000Z') 一个已存在的本地 JavaScript Date 对象可以用来创建一个 Day.js

9.4K20

在浏览器控制台安装 NPM 包是什么体验?

来自同事独钓寒江雪的投稿,首发:https://juejin.cn/post/7023916328637431816 我们都知道,npm 是 JavaScript 世界的包管理工具,并且是 Node.js...如果我换一个方式进行提问:如何在浏览器/HTML 引入 JavaScript 呢?也许你马上就有了答案:标签。...search=${name}`, // 不显示referrer的任何信息在请求头中 { referrerPolicy: 'no-referrer' } ); const { results...search=${name}`, // 不显示referrer的任何信息在请求头中 { referrerPolicy: 'no-referrer' } ); const { results...那自然是行的啦,你完全可以自己写一个浏览器插件,这些 JS 代码注入页面,详情可参考7 分钟学会写一个浏览器插件——突破某 SDN 未登录禁止复制的限制[3]。

1.3K50

七天学会ASP.NET MVC (四)——用户授权认证问题

实验15学习如何在验证失败时,填充值。 1. 创建 CreateEmployeeViewModel 类。...关于实验15 是否是真的值保留? 不是,是从post数据重新获取的。 为什么需要在初始化请求时,在Add New 方法传递 new CreateEmployeeViewModel()?...之前实验9讨论的,当点击提交按钮时,是给服务器发送请求,验证失败时对服务器请求没有意义。通过添加”return false“代码,可以取消默认的服务器请求。...在一些JavaScript脚本代码无法使用时,服务器端可以替代使用。 实验 17 添加授权认证 在实验17,会改进GetView方法,使其变得更加安全,只有合法的用户才能够访问该方法。...可用于以后的认证请求过程。 如果是非法用户,给当前的ModelState添加新的错误信息,错误信息显示在View

8.7K50
领券