首页 > 解决方案 > 无法在 Android 小部件按钮上发出 Http 请求。

问题描述

这真的很奇怪。代码很简单。当点击按钮时,它会进入 getNaverHtmlOn 函数向网站请求。

但是在那里,当我的手机没有插入电源时,它不起作用。但是当我插入手机时,它可以工作。

并且,当我的手机没有插入时,按下按钮并启动应用程序,然后 http 请求工作

如何在不插入手机的情况下完成我的 http 请求

public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    super.onReceive(context, intent);

    if (SYNC_CLICKED.equals(intent.getAction())) {

        Log.e("main","clicked");
        Toast.makeText(context,"1",Toast.LENGTH_SHORT).show();


        new Thread() {
        public void run() {
             getNaverHtmlOn();
        }
    }.start();
        Log.e("main","clicked333");


    }
  }



private String getNaverHtmlOn() {
        String naverHtml = "";

        HttpURLConnection con = null;
        InputStreamReader isr = null;
        BufferedReader br = null;

        try{
            URL url = new URL("https://xxxxx.herokuapp.com/xxxx?xxx=015EF&xxx=0");
            con = (HttpURLConnection) url.openConnection();
            con.setConnectTimeout(10000);
            con.setReadTimeout(10000);

            isr = new InputStreamReader(con.getInputStream());
            br = new BufferedReader(isr);

            String str = null;

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(con != null){
                try{con.disconnect();}catch(Exception e){}
            }

            if(isr != null){
                try{isr.close();}catch(Exception e){}
            }

            if(br != null){
                try{br.close();}catch(Exception e){}
            }
        }
        return naverHtml;
    }

标签: androidhttprequesthttprequest

解决方案


当我的手机没有插入电源时,它没有工作。但是当我插入手机时,它可以工作。

这可能是硬件问题。您的手机似乎处于省电模式。尝试在系统设置中关闭它。

或者在另一部手机上运行您的应用程序,以确保它是硬件问题或奇怪的软件错误。


推荐阅读