我有一个案例,我必须做,该案例说,获取外汇货币货币,但不使用第三方库。我知道翻新和凌空,但他们是第三方库。我也知道异步任务,但他们说异步任务是旧的,有像内存问题的问题。我可以使用异步任务,但你怎么看呢?我应该如何使用从互联网上获取数据,而不使用第三方库?你对此有何看法?
bzzcjhmw1#
您可以将此类用于HTTP GET请求:
import android.util.Log; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; public class HttpHandler { private static final String TAG = HttpHandler.class.getSimpleName(); public HttpHandler() { } public String makeServiceCall(String reqUrl) { String response = null; try { URL url = new URL(reqUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); InputStream in = new BufferedInputStream(conn.getInputStream()); response = convertStreamToString(in); } catch (MalformedURLException e) { Log.e(TAG, "MalformedURLException: " + e.getMessage()); } catch (ProtocolException e) { Log.e(TAG, "ProtocolException: " + e.getMessage()); } catch (IOException e) { Log.e(TAG, "IOException: " + e.getMessage()); } catch (Exception e) { Log.e(TAG, "Exception: " + e.getMessage()); } return response; } private String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line; try { while ((line = reader.readLine()) != null) { sb.append(line).append('\n'); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } }
你可以直接使用Thread,但是对于用Kotlin编写的android应用程序来说,更好的方法是使用协程。
1条答案
按热度按时间bzzcjhmw1#
您可以将此类用于HTTP GET请求:
你可以直接使用Thread,但是对于用Kotlin编写的android应用程序来说,更好的方法是使用协程。