HTTP 不工作

HTTP Get Not Working

编辑:对于我一开始问的问​​题有多糟糕,我感到非常抱歉,我非常沮丧和疲倦,但我知道这真的不是一个借口。无论如何,我编辑了它。我也已经在 Whosebug 论坛和其他论坛上看了很多,并尝试了他们的方法,但没有结果,所以我想这不是一个真正重复的问题。

经过数小时的尝试和使用多种方法后,我终于放弃并决定 post 这里的问题。令人沮丧的是我无法让它工作,它用于家庭自动化项目,学习 C 和 python 等新语言在处理这个项目时从来都不是问题,所以不让它工作是非常令人沮丧的。无论如何,这是代码:

public void buttonOnClick(View v) {
    Button button = (Button) v;
    ((Button) v).setText("clicked");
        // The request here
        // The request here
        // The request here
        // The request here

        }

这是一个简单的应用程序,只有一个按钮,应该向 192.168.0.150/main_light/switch 发送一个简单的 http get 请求。我知道这应该有效,因为我一直在 Tasker 中为此使用 HTTP GET(它在 Python 中有效)。我真的希望有人能在这里帮助我,谢谢!

P.S。我知道这里仍然有一些无用的操作,我是一个 JAVA 新手,决定在我最终可以正常工作之前不做任何事情。

尝试使用 http://square.github.io/okhttp/

把代码放在这里:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           OkHttpClient client = new OkHttpClient();
           String run(String url) throws IOException {
           Request request = new Request.Builder()
               .url(url)
               .build();

           Response response = client.newCall(request).execute();
           return response.body().string();
        }
    }
});

使用HttpURLConnection实现同样的效果:

String serverURL = "http://192.168.0.150/main_light/switch";
URL url = new URL(serverURL);
HttpURLConnection connection = null;
try {
    connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
    //Do something with this InputStream
    // handle the response
    int status = connection.getResponseCode();
    // If response is not success
    if (status != 200) {
        throw new IOException("Post failed with error code " + status);
    }
} catch (Exception e) {
    Log.e(TAG,e.toString());
} finally {
     if(connection != null)
         connection.disconnect();
}

希望对您有所帮助!

使用这个方法:

public static int get(String url) throws Exception {
    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
        //consume response if any;
    }
    in.close();
    return responseCode;
}

如果需要,请执行请求的消费。