Я пытаюсь сделать кнопку, которая отправляет HTTP-запрос на IP-адрес с помощью Android Studio. Я провел свое исследование и использовал асинхронный режим, но по какой-то причине я всегда получаю сообщение об ошибке после использования функции .connect (), что означает, что мне не удалось подключиться.
Я добавил разрешение ИНТЕРНЕТ в манифест.
public class MainActivity extends AppCompatActivity {
Button btn;
TextView txtResponse;
RequestQueue queue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);
queue = Volley.newRequestQueue(this);
btn.setTag(1);
btn.setText("ON");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final int status =(Integer) v.getTag();
if(status == 1) {
btn.setText("OFF");
v.setTag(0); //pause
} else {
btn.setText("ON");
v.setTag(1); //pause
}
final String url = "http://google.com";
String my_url = url;// Replace this with your own url
String my_data = "";// Replace this with your data
new MyHttpRequestTask().execute(my_url,my_data);
}
});
}
private class MyHttpRequestTask extends AsyncTask<String,Integer,String>{
@Override
protected String doInBackground(String... params) {
String my_url = params[0];
String my_data = params[1];
String response = "";
response = ServiceHandler.findJSONFromUrl(my_url);
Log.d("rofl",response.toString());
return response;
}
}
}
class ServiceHandler {
// Create Http connection And find Json
public static String findJSONFromUrl(String url) {
String result = "";
try {
URL urls = new URL(url);
HttpURLConnection conn = (HttpURLConnection) urls.openConnection();
conn.setReadTimeout(150000); //milliseconds
conn.setConnectTimeout(15000); // milliseconds
conn.setRequestMethod("GET");
conn.connect();//this is where it stops
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
result = sb.toString();
} else {
return "error";
}
} catch (Exception e) {
// System.out.println("exception in jsonparser class ........");
e.printStackTrace();
return "error";
}
return result;
} // method ends
}
Я печатаю результат в журнал, используя Log.d, но он всегда печатает ошибку. Я отладил код, и он останавливается после вызова функции .connect.