Guest User

net.baza.testbazanet

a guest
Jul 17th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.56 KB | None | 0 0
  1. package net.baza.testbazanet;
  2.  
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.graphics.drawable.BitmapDrawable;
  6. import android.os.AsyncTask;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.os.Bundle;
  9. import android.util.Base64;
  10. import android.widget.Button;
  11. import android.widget.TextView;
  12. import android.view.View;
  13. import android.view.View.OnClickListener;
  14. import java.io.BufferedReader;
  15. import java.io.IOException;
  16. import java.io.InputStreamReader;
  17. import java.net.HttpURLConnection;
  18. import java.net.MalformedURLException;
  19. import java.net.ProtocolException;
  20. import java.net.URL;
  21.  
  22. public class MainActivity extends AppCompatActivity {
  23.  
  24.     private TextView view;
  25.     @Override
  26.     protected void onCreate(Bundle savedInstanceState) {
  27.         super.onCreate(savedInstanceState);
  28.         setContentView(R.layout.activity_main);
  29.         //инициализируем элементы управления
  30.         Button button1 = findViewById(R.id.button1);
  31.         Button button2 = findViewById(R.id.button2);
  32.         Button button3 = findViewById(R.id.button3);
  33.         view = findViewById(R.id.textView);
  34.         //Создаем обработчик нажатия кнопки.
  35.         OnClickListener listener = new OnClickListener() {
  36.             @Override
  37.             public void onClick(View v) {
  38.                 //получаем значение параметра id из названия кнопки
  39.                 String text = new StringBuilder(((Button) findViewById(v.getId())).getText()).substring(6);
  40.                 //запускаем задание подключения к серверу в отдельном потоке
  41.                 new HttpRequestTask().execute(
  42.                                 "http://baza.net/api.php",
  43.                                 "method=testApp",
  44.                                 "id=" + text);
  45.             }
  46.         };
  47.         //присваиваем Listener всем кнопкам
  48.         button1.setOnClickListener(listener);
  49.         button2.setOnClickListener(listener);
  50.         button3.setOnClickListener(listener);
  51.     }
  52.  
  53.     //класс для обработки get-запросов в отдельном от GUI потоке
  54.     public class HttpRequestTask extends AsyncTask<String, Void, String> {
  55.  
  56.         protected String doInBackground(String[] urls) {
  57.             try {
  58.                 //когда нет URL для подключения
  59.                 if (urls.length == 0)
  60.                     return "Arguments not found!";
  61.                 //добавляем к URL параметры из аргументов
  62.                 String urlString = urls[0] + "?";
  63.                 for (int i = 1; i < urls.length; i++)
  64.                     urlString = urlString.
  65.                             concat(urls[i]).
  66.                                     concat("&");
  67.                 urlString = urlString.substring(0, urlString.length() - 1);
  68.                 //выполняем get-запрос
  69.                 URL url = new URL(urlString);
  70.                 HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  71.                 connection.setReadTimeout(500);
  72.                 connection.setConnectTimeout(500);
  73.                 connection.setRequestMethod("GET");
  74.                 //получаем поток с ответом и считываем ответ построчно
  75.                 BufferedReader in = new BufferedReader(
  76.                         new InputStreamReader(connection.getInputStream()));
  77.                 StringBuilder answer = new StringBuilder("");
  78.                 String line;
  79.                 while ((line = in.readLine()) != null) {
  80.                     answer = answer.append(line);
  81.                 }
  82.                 in.close();
  83.                 return answer.toString();
  84.             }
  85.             catch (MalformedURLException e)
  86.             {
  87.                 //Отображаем сообщение об ошибке
  88.                 return "An error occurred!";
  89.             }
  90.             catch (ProtocolException e)
  91.             {
  92.                 //Отображаем сообщение об ошибке
  93.                 return "An error occurred!";
  94.             }
  95.             catch (IOException e)
  96.             {
  97.                 //Нет интернета!!!!
  98.                 return "Server \"baza.net\" not found!";
  99.             }
  100.         }
  101.  
  102.         //обрабатываем строку с ответом
  103.         protected void onPostExecute(String string) {
  104.             //зашифрованное изображение
  105.             if (string.startsWith("data:image/jpeg;base64")) {
  106.                 //расшифровываем изображение
  107.                 byte[] decodedByte = Base64.decode((string.substring(23)), Base64.DEFAULT);
  108.                 //декодируем изображение
  109.                 Bitmap bmp = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
  110.                 //удаляем старый текст
  111.                 view.setText("");
  112.                 //задаем фоновое изображение
  113.                 view.setBackgroundDrawable(new BitmapDrawable(getResources(), bmp));
  114.             }
  115.             //обычный текст
  116.             else {
  117.                 //отображаем текст
  118.                 view.setText(string);
  119.                 //ставим пустое фоновое изображение
  120.                 view.setBackgroundDrawable(new BitmapDrawable());
  121.             }
  122.         }
  123.     }
  124. }
Add Comment
Please, Sign In to add comment