鱼C论坛

 找回密码
 立即注册
查看: 2513|回复: 0

[学习笔记] amdroid 9.2.2

[复制链接]
发表于 2017-11-2 08:15:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
修改上次的项目,在app的build.gradle里的dependencies添加
  1. compile 'com.squareup.okhttp3:okhttp:3.4.1'
复制代码

修改mainactivity.java
  1. package com.example.xinwei.networktest;

  2. import android.app.DownloadManager;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.view.View;
  7. import android.widget.Button;
  8. import android.widget.TextView;

  9. import java.io.BufferedReader;
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.io.InputStreamReader;
  13. import java.io.StringReader;
  14. import java.net.HttpURLConnection;
  15. import java.net.MalformedURLException;
  16. import java.net.URL;
  17. import java.net.URLDecoder;
  18. import java.net.URLEncoder;

  19. import okhttp3.OkHttpClient;
  20. import okhttp3.Request;
  21. import okhttp3.Response;

  22. public class MainActivity extends AppCompatActivity implements View.OnClickListener{

  23.     TextView responseText;
  24.     @Override
  25.     protected void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         setContentView(R.layout.activity_main);
  28.         Button sendRequest = (Button)findViewById(R.id.send_request);
  29.         responseText = (TextView)findViewById(R.id.response_text);
  30.         sendRequest.setOnClickListener(this);
  31.     }

  32.     @Override
  33.     public void onClick(View view) {
  34.         if (view.getId()==R.id.send_request){
  35.             //sendRequestWithHttpURLConnection();
  36.             sendRequestWithOkHttp();
  37.         }
  38.     }

  39.     private void sendRequestWithOkHttp() {
  40.         new Thread(){
  41.             @Override
  42.             public void run(){
  43.                 OkHttpClient client = new OkHttpClient();
  44.                 Request request = new Request.Builder().url("http://www.baidu.com").build();
  45.                 try {
  46.                     Response response = client.newCall(request).execute();
  47.                     String responseData = response.body().string();
  48.                     showResponse(responseData);
  49.                 } catch (IOException e) {
  50.                     e.printStackTrace();
  51.                 }
  52.             }
  53.         }.start();
  54.     }

  55.     private void sendRequestWithHttpURLConnection() {
  56.         new Thread() {
  57.             @Override
  58.             public void run() {
  59.                 HttpURLConnection connection = null;
  60.                 BufferedReader reader=null;
  61.                 try {
  62.                     URL url = new URL("http://www.fishC.com");
  63.                     connection = (HttpURLConnection)url.openConnection();
  64.                     connection.setRequestMethod("GET");
  65.                     connection.setRequestProperty("Content-type", "application/x-java-serialized-object");
  66.                     Log.d("MainActivity", ""+connection.getResponseCode());
  67.                     connection.setConnectTimeout(8000);
  68.                     connection.setReadTimeout(8000);
  69.                     InputStream in = connection.getInputStream();
  70.                     reader=new BufferedReader(new InputStreamReader(in));
  71.                     StringBuilder response=new StringBuilder();
  72.                     String line;
  73.                     while ((line=reader.readLine())!=null){
  74.                         response.append(line);
  75.                     }
  76.                     showResponse(response.toString());
  77.                 } catch (MalformedURLException e) {
  78.                     e.printStackTrace();
  79.                 } catch (IOException e) {
  80.                     e.printStackTrace();
  81.                 }finally {
  82.                     if(reader!=null){
  83.                         try {
  84.                             reader.close();
  85.                         } catch (IOException e) {
  86.                             e.printStackTrace();
  87.                         }
  88.                     }
  89.                     if (connection!=null){
  90.                         connection.disconnect();
  91.                     }
  92.                 }

  93.             }

  94.         }.start();
  95.     }

  96.     private void showResponse(final String response) {
  97.         runOnUiThread(new Runnable() {
  98.             @Override
  99.             public void run() {
  100.                 responseText.setText(response);
  101.             }
  102.         });
  103.     }
  104. }
复制代码
这个sendRequestWithOkHttp();函数就是用okhttp模块实现获取百度网站内容的功能。
效果图:
asdsassad.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 21:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表