Xposed回发android.os.NetworkOnMainThreadException修复

这篇具有很好参考价值的文章主要介绍了Xposed回发android.os.NetworkOnMainThreadException修复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近用xposed进行hook回发的时候,又出现了新的问题;

android.os.NetworkOnMainThreadException;

在Android4.0以后,写在主线程(就是Activity)中的HTTP请求,运行时都会报错,这是因为Android在4.0以后为了防止应用的ANR(Aplication
Not Response)异常,Android这个设计是为了防止网络请求时间过长而导致界面假死的情况发生。

我尝试了网上的第一种解决方法:

1.在Activity的onCreate()方法中加入代码

        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }

xposed scheduleonmainthread,App逆向工具,android,.net,java
仍然出现了, 这种问题报错,未解决;

2. 尝试启动子线程进行网络请求

    new Thread(new Runnable(){
        @Override
        public void run() {
           //请求详情
        }).start();

以下是之前的方案,直接调用 new HttpHello();

https://codeooo.blog.csdn.net/article/details/126099666文章来源地址https://www.toymoban.com/news/detail-522153.html

package com.sun.dyCapture;

import android.os.Bundle;

import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import cz.msebera.android.httpclient.NameValuePair;
import cz.msebera.android.httpclient.client.entity.UrlEncodedFormEntity;
import cz.msebera.android.httpclient.client.methods.CloseableHttpResponse;
import cz.msebera.android.httpclient.client.methods.HttpPost;
import cz.msebera.android.httpclient.impl.client.CloseableHttpClient;
import cz.msebera.android.httpclient.impl.client.HttpClients;
import cz.msebera.android.httpclient.message.BasicNameValuePair;
import cz.msebera.android.httpclient.util.EntityUtils;




public class HttpHello {


    public static JSONObject Build2Json(Bundle bundle) throws Exception {
        JSONObject json = new JSONObject();
        Set<String> keys = bundle.keySet();
        for (String key : keys) {
            try {
                // json.put(key, bundle.get(key)); see edit below
                json.put(key, JSONObject.wrap(bundle.get(key)));
            } catch (JSONException e) {
                //Handle exception here
            }
        }
        return json;
    }


    public void sendRequestWithHttpConnection(String result) throws Exception {

        // 创建Httpclient对象172
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 创建http POST请求
        HttpPost httpPost = new HttpPost("ip:端口/Cookie");
        // 设置2个post参数
        List<NameValuePair> parameters = new ArrayList<NameValuePair>(0);
        parameters.add(new BasicNameValuePair("result", result));
        // 构造一个form表单式的实体
        UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters);
        // 将请求实体设置到httpPost对象中
        httpPost.setEntity(formEntity);
        //伪装浏览器
        httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36");

        try (CloseableHttpResponse response = httpclient.execute(httpPost)) {
            // 执行请求
            // 判断返回状态是否为200
            if (response.getStatusLine().getStatusCode() == 200) {
                String content = EntityUtils.toString(response.getEntity(), "UTF-8");
                System.out.println("内容" + content);
            } else
                System.out.println("内容错误" + response.getStatusLine().getStatusCode());
        }
        httpclient.close();
    }

    HttpHello(final String result){
        //开启线程发起网络连接
        new Thread(new Runnable(){
            public void run(){
                try {
                    sendRequestWithHttpConnection(result);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
    }

}





到了这里,关于Xposed回发android.os.NetworkOnMainThreadException修复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xposed Hook不到类报错以及Xposed的Hook方法讲解

    有时候XposedHook会报错,提示找不到类,这个是因为,hook的那个类是其他classloader加载的,这个时候,就需要先hook Application.class下的attach方法,拿到每个ClassLoader,然后再用这个ClassLoder尝试加载自己的目标类,如果成功加载了,那说明这个类就是该classLoader加载的,然后再进行

    2023年04月08日
    浏览(36)
  • Xposed插件编写

    所需要环境 : jdk sdk xposed激活安装 xposed激活安装 :https://blog.csdn.net/weixin_38927522/article/details/119832717 两个jar包,Bridge是实现,api-82是调用,调用无法查看源代码实现逻辑,故而会小一些,这两个用哪个都可以。 build.gradle下dependencies中引入: 全build.gradle文件如下: ​ 创建a

    2024年02月16日
    浏览(33)
  • Xposed环境安装

    Zygote是Android的核心,每运行一个app,Zygote就会fork一个虚拟机实例来运行app, Xposed Framework深入到了Android核心机制中,通过改造Zygote来实现一些很牛逼的 功能。Zygote的启动配置在init.rc 脚 本 中,由系统启动的时候开启此进程,对应的 执行文件是/system/bin/app_process,这个文件完

    2024年02月16日
    浏览(30)
  • Xposed 框架检测机制

    2024年02月16日
    浏览(28)
  • 模拟器安装XPosed框架教程

    99%的情况只需要下载里面的XPosed鸭就行了 安卓8及以下XPosed框架 - 多开鸭 模拟器安装XPosed框架图文视频教程 关于本站XPosed框架的说明 XPosed框架(即XP框架),由rovo89开发。适用于安卓7以下及部分安卓8(不推荐) 安装需要root权限,本站汉化并出资 https://www.duokaiya.com/xposed.html 哪些

    2024年01月16日
    浏览(49)
  • 使用Xposed对native进行hook

    Xposed框架可谓是“家喻户晓”的神器,它具有着frida所不具备的持久性(虽然frida也可以通过frida-gadget实现持久化,但没有Xposed使用方便)。当我们需要hook java层的代码时,Xposed使用起来得心应手,但是随着软件开发者的安全意识越来越高,放在java层的核心代码也就越来少,这就

    2024年02月02日
    浏览(31)
  • fidder+Xposed & JustTruestMe框架安装,解决网络错误

      查找了网上很多资料,和HTTPS中SSL Pinging 特性有关:   SSL Pinging, 即 SSL 证书绑定,是在HTTPS协议建立通信时增加的代码逻辑,它通过自己的方式验证服务器身份,然后决定通信是否继续下去。它唯一指定了服务器的身份,所以HTTPS协议安全性较高。(个人理解:只要是APP中H

    2024年02月13日
    浏览(26)
  • 太极v14.0.4 免ROOT用Xposed

    一个帮助你免 Root、免解锁免刷机使用 Xposed 模块的 APP 框架。 模块通过它改变系统和应用的行为,既能以传统的 Root/ 刷机方式运作, 也能免 Root/ 免刷机运行;并且它支持 Android 5.0 ~ 11。 简单来说,太极就是个 Xposed 框架,能够加载 Xposed 模块、 修改系统和 APP、拦截方法,执

    2024年02月08日
    浏览(27)
  • 安卓5.0模拟器下安装Xposed和JustTrustMe详细教程解决app某音抓包无网络问题附安装包下载地址

    本篇文章主要介绍如何在安卓5.0模拟器下安装Xposed以及JustTrustMe模块,从而来实现抖音app抓包无网络问题,当然也包括抓包后HTTPS解密问题。 环境 : Android5.0 X86 架构,模拟器使用夜深/雷电均可,也可以使用AS中的VM manager新建安卓模拟器,你也可以使用真机测试但不推荐,毕竟需

    2024年02月02日
    浏览(68)
  • 1+6t刷个lineage OS 20(Android13)

      在小黄鱼上买了一台1+6t(8+256)(屏幕指纹损坏)本来想安个win11结果由于硬件问题每次安装都卡死在下图这个状态,于是就想刷个别的系统看看。 这个问题也可以解决 按住shift+f10(或者shift+Fn+f10),输入regedit,找到注册表HKEY_LOCAL_MACHINESYSTEMSETUPSTATUSChildCompletionSETUP.

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包