使用Http协议访问网络

OkHttp使用

可以很好的获取接口数据!json数据!

支持get和post提交方式!!!

1.引入模块

  1. compile 'com.squareup.okhttp3:okhttp:3.4.1'

然后系统会自动引入模块

2.设置权限

  1. <uses-permission android:name="android.permission.INTERNET" />

支持上网

3.布局

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. >
  7. <Button
  8. android:id="@+id/send_request"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:text="Send Request"
  12. />
  13. <ScrollView
  14. android:layout_width="match_parent"
  15. android:layout_height="match_parent"
  16. >
  17. <TextView
  18. android:id="@+id/response_text"
  19. android:layout_width="match_parent"
  20. android:layout_height="wrap_content"
  21. />
  22. </ScrollView>
  23. </LinearLayout>

4.实现功能

点击按钮,获取接口数据并展示

  1. package demo.jq.com.networktest;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.TextView;
  7. import java.io.BufferedReader;
  8. import java.io.EOFException;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.io.InputStreamReader;
  12. import java.net.HttpURLConnection;
  13. import java.net.URL;
  14. import okhttp3.FormBody;
  15. import okhttp3.OkHttpClient;
  16. import okhttp3.Request;
  17. import okhttp3.RequestBody;
  18. import okhttp3.Response;
  19. /**
  20. * @author jim
  21. */
  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 v) {
  34. if (v.getId() == R.id.send_request) {
  35. sendRequestWithOkHttp();
  36. }
  37. }
  38. private void sendRequestWithOkHttp() {
  39. // 开启线程来发起网络请求
  40. new Thread(new Runnable() {
  41. @Override
  42. public void run() {
  43. HttpURLConnection connection = null;
  44. BufferedReader reader = null;
  45. try {
  46. OkHttpClient client = new OkHttpClient();
  47. // post请求
  48. RequestBody requestBody = new FormBody.Builder()
  49. .add("type","1")
  50. .build();
  51. Request request = new Request.Builder()
  52. .url("http://devmg.yunlutong.com/api/test/testApi")
  53. .post(requestBody)
  54. .build();
  55. Response response = client.newCall(request).execute();
  56. String responseData = response.body().string();
  57. showResponse(responseData);
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. } finally {
  61. if (reader != null) {
  62. try {
  63. reader.close();
  64. } catch (IOException e) {
  65. e.printStackTrace();
  66. }
  67. }
  68. if (connection != null) {
  69. connection.disconnect();
  70. }
  71. }
  72. }
  73. }).start();
  74. }
  75. private void showResponse(final String response) {
  76. runOnUiThread(new Runnable() {
  77. @Override
  78. public void run() {
  79. responseText.setText(response);
  80. }
  81. });
  82. }
  83. }

安卓通过OkHttp获取json数据的更多相关文章

  1. Android Volley 库通过网络获取 JSON 数据

    本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...

  2. Netflix Falcor获取JSON数据

    Netflix开源了JavaScript库Falcor,它为从多个来源获取JSON数据提供了模型和异步机制. Netflix利用Falcor库实现通过JSON数据填充他们网页应用的用户界面.所有来自内 ...

  3. jquery通过ajax方法获取json数据不执行success

    1.jquery通过ajax方法获取json数据不执行success回调 问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准 ...

  4. jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。

    从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { ...

  5. JQuery 获取json数据$.getJSON方法的实例代码

    这篇文章介绍了JQuery 获取json数据$.getJSON方法的实例代码,有需要的朋友可以参考一下 前台: function SelectProject() { var a = new Array ...

  6. Jquery 模板插件 jquery.tmpl.js 的使用方法(1):基本语法,绑定,each循环,ajax获取json数据

    jquery.tmpl.js 是一个模板js  ,主要有2个方法 (1):$.template()方法,将一段script或者是Html编译为模板,例如 $.template('myTemplate' ...

  7. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  8. jquery通过ajax方法获取json数据不执行success回调

    问题描述:jquery通过ajax方法获取json数据不执行success回调方法 问题原因:json格式存在问题或不符合标准写法,导致总是执行error回调方法 解决方案:使json格式务必符合下述 ...

  9. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

随机推荐

  1. Android实现能够揉动的图片

    public class Demo01 extends Activity{ private Bitmap bitmap = null; @Override protected void onCreat ...

  2. POJ 2796 / UVA 1619 Feel Good 扫描法

    Feel Good   Description Bill is developing a new mathematical theory for human emotions. His recent ...

  3. keras中使用预训练模型进行图片分类

    keras中含有多个网络的预训练模型,可以很方便的拿来进行使用. 安装及使用主要参考官方教程:https://keras.io/zh/applications/   https://keras-cn. ...

  4. 如何安装windows系统

    前言:装系统有两种方式,一种是下载系统镜像文件后解压ios文件到除c盘以外其他盘都可(如原系统是win10系统,则可以直接右键加载,而不必解压),然后运行.exe文件就可以自动安装了.这种方法在新款电 ...

  5. Android Studio 插件 GsonFormat :你还在烦恼 为 Json格式 生成 JavaBean实体类吗?

    在网络层,互联网提供所有应用程序都要使用的两种类型的服务,尽管目前理解这些服务的细节并不重要,但在所有TCP/IP概述中,都不能忽略他们: 无连接分组交付服务(Connectionless Packe ...

  6. Java NIO(四)文件通道

    文件通道 通道是访问I/O服务的导管,I/O可以分为广义的两大类:File I/O和Stream I/O.那么相应的,通道也有两种类型,它们是文件(File)通道和套接字(Socket)通道.文件通道 ...

  7. 一.Windows I/O模型之选择(select)模型

    1.选择(select)模型:选择模型:通过一个fd_set集合管理套接字,在满足套接字需求后,通知套接字.让套接字进行工作.避免套接字进入阻塞模式,进行无谓的等待.选择模型的核心的FD_SET集合和 ...

  8. UVa 10106 Product 【大数相乘】WA

    虽然是错的代码,但是还是想贴出来,最开始WA发现是没有考虑到乘积为0的情况,后来把a*0,0*a,a*0---0(若干个0),0--0(若干个0)*a都考虑进去了:可是还是WA,实在不懂先留在这儿. ...

  9. Java web课程学习之Request和Response

    request和response l HttpServletRequest l 请求转发 l HttpServletResponse l 请求重定向   请求流程 每次请求service(),都会由容 ...

  10. thinkphp queue

    composer create-project topthink/think composer require topthink/think-queue php think queue:work -- ...