Android Studio OkHttpClient使用教程详解

本次来记录下OkHttpClient的使用,OkHttpClient是用来完成android 客户端对服务端请求的工具。

首先记住,使用网络的时候一定要加入权限,加入到AndroidMainfest.xml中

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

在初次使用的时候会出现报错。cannot resolve symbol OkHttpClient

这里需要引入

implementation 'com.squareup.okhttp3:okhttp:3.0.1'
然后刷新下项目就可以了。

代码:

package com.example.administrator.testclient;

import com.squareup.*;

import java.io.IOException;

import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class BaseHttpClient {

 public static final MediaType MEDIA_TYPE_MARKDOWN
   = MediaType.parse("text/x-markdown; charset=utf-8");
 // 01. 定义okhttp
 private final OkHttpClient client = new OkHttpClient();

 public BaseHttpClient(){

  //client.connectTimeoutMillis();
 }

 /**
  * 发送一个表单请求
  * @throws Exception
  */
 public void SendForm() throws Exception {
  RequestBody formBody = new FormBody.Builder()
    .add("search", "Jurassic Park")
    .build();
  Request request = new Request.Builder()
    .url("https://en.wikipedia.org/w/index.php")
    .post(formBody)
    .build();

  Response response = client.newCall(request).execute();
  if (!response.isSuccessful())
   throw new IOException("Unexpected code " + response);

  System.out.println(response.body().string());
 }

 /**POST 请求
  * 发送一个string请求
  * @throws Exception
  */
 public void SendPostString() throws Exception {
  String postBody = ""
    + "Releases\n"
    + "--------\n"
    + "\n"
    + " * _1.0_ May 6, 2013\n"
    + " * _1.1_ June 15, 2013\n"
    + " * _1.2_ August 11, 2013\n";

  Request request = new Request.Builder()
    .url("https://api.github.com/markdown/raw")
    .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, postBody))
    .build();

  Response response = client.newCall(request).execute();
  if (!response.isSuccessful())
   throw new IOException("Unexpected code " + response);

  System.out.println(response.body().string());
 }

 /**POST 请求
  * 发送一个From请求
  * @throws Exception
  */
 public void SendPostFrom() throws Exception {

  RequestBody body = new FormBody.Builder()
    .add("name", "sy")//添加参数体
    .add("age", "18")
    .build();

  Request request = new Request.Builder()
    .post(body) //请求参数
    .url("http://123.207.70.54:8080/SpringMvc/hello")
    .build();

  Response response = client.newCall(request).execute();
  if (!response.isSuccessful())
   throw new IOException("Unexpected code " + response);
 }

 /**Get请求
  * 发送一个From请求
  * @throws Exception
  */
 public void SendGetFrom() throws Exception {

  Request request = new Request.Builder()
    .get() //请求参数
    .url("http://123.207.70.54:8080/SpringMvc/hello")
    .build();

  Response response = client.newCall(request).execute();
  if (!response.isSuccessful())
   throw new IOException("Unexpected code " + response);
 }

}

测试发现,上面的用不了,下面放一个测试通过的方法:

public void getDatasyncFactory(){
    new Thread(new Runnable() {
     @Override
     public void run() {
      try {
       OkHttpClient client = new OkHttpClient();//创建OkHttpClient对象
       Request request = new Request.Builder()
         .url("http://123.207.70.54:8080/SpringMvc/hello")//请求接口。如果需要传参拼接到接口后面。
         .build();//创建Request 对象
       Response response = null;
       response = client.newCall(request).execute();//得到Response 对象
       if (response.isSuccessful()) {
        Log.d("kwwl","response.code()=="+response.code());
        Log.d("kwwl","response.message()=="+response.message());
        Log.d("kwwl","res=="+response.body());
        //此时的代码执行在子线程,修改UI的操作请使用handler跳转到UI线程。
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }).start();
   }

返回信息:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 解决android studio 打包发现generate signed apk 消失不见问题

    今天打开AS,修改完打包APK,发现generate signed apk不见了. 查看了一下,发现messages窗口有如下报错. Problems found loading plugins: Plugin "Android NDK Support" was not loaded: required plugin "Android Support" is disabled. Plugin "Google App Indexing" was n

  • Android Studio实现简单的QQ登录界面的示例代码

    一.项目概述 QQ是我们日常生活使用最多的软件之一,包含登录界面和进入后的聊天界面.好友列表界面和空间动态界面等.登录界面的制作比较简单,主要考验布局的使用,是实现QQ项目的第一步.现在APP开发的首要工作都是实现登录页面,所以学会了QQ登录界面对以后的软件开发有着很重要的作用. 二.开发环境 三.详细设计 1.头像设计 首先在layout文件里面选择了RelativeLayout(相对布局)作为整个页面的布局. 在顶端放置了一个ImageView控件,宽度和高度设置的都是70dp,水平居中设置

  • Android Studio进行APP图标更改的两种方式总结

    百度了许多相关资料,对两种修改app图标的方式进行总结: 第一种:(最简单的方法) 将你准备好的 图标放入res目录下的drawable,在AndroidManifest.xml文件中,找到android:icon以及android:roundIcon这两个属性,设置为你放入的图标文件. 如图,appicon就是我准备替换的文件.注意保存时,保存名称不能有大写字母与空格,否则编译时会报错,此外,查到的资料中图片格式建议保存为.png.不过自己试验过.jpg与.png都是可以正确替换图标的. 在这

  • Android studio 切换flutterSDK之后报错及解决办法(推荐)

    Windows系统上面修改了flutter sdk的环境变量地址之后Android studio上面运行flutter项目就会报错 类似于: Could not read script XXX\flutter.gradle' as it does not exist. 还有这样:flutter:Warning! The 'flutter' tool you are currently running is from a different Flutter repository 解决办法: 1.首

  • AndroidStudio4.0 New Class的坑(小结)

    AndroidStudio升级后, 新建类变成了下面这个样子, 并且默认还没有修饰符, 一堆大写的英文看的我一脸懵逼, 后来在 stackoverflow上看到了这几个参数的含义: IMPORT BLOCK 说白了就是导包(谁家导包会手动写呀[捂脸]) VISIBILITY 值为PUBLIC或 PACKAGE_PRIVATE 或不填 分别对应public修饰符 private 修饰符和没有修饰符 (我一般新建类都默认public修饰符, 默认没有修饰符感觉贼不方便) FINAL 就是类是否加fi

  • Android Studio 创建自定义控件的方法

    我们知道,当系统控件并不能满足我们的需求时,我们就需要来创建自定义控件,主要有两种方法 (1)引入布局 下面来自定义一个控件,iPhone的标题栏,创建一个标题栏并不是什么难事,加入两个button一个TextView就行了,可是在我们的应用中,有很多页面都是需要这样的标题栏,我们不可能每个活动都写一遍布局,这个时候我们就可以用引用布局的方法,新建一个title.xml <?xml version="1.0" encoding="utf-8"?> <

  • Android Studio连接SQLite数据库的登录注册实现

    1.先看一下项目目录: 2.新建一个AS项目,创建如上图所示的目录结构,然后添加内容: (1)修改添加布局文件: activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android&quo

  • Android studio 运行main 函数的方法

    标题Gradle构建问题 切换到Project工程下.idea/gradle.xml添加属性 <option name="delegatedBuild" value="false" /> 图例 PS:下面通过示例代码看下JAVA中的main函数 package com.han; public class HanTest { public static void main(String[] args){ if(args==null){ throw new

  • Android Studio OkHttpClient使用教程详解

    本次来记录下OkHttpClient的使用,OkHttpClient是用来完成android 客户端对服务端请求的工具. 首先记住,使用网络的时候一定要加入权限,加入到AndroidMainfest.xml中 <uses-permission android:name="android.permission.INTERNET" /> 在初次使用的时候会出现报错.cannot resolve symbol OkHttpClient 这里需要引入 implementation

  • 使用IntelliJ IDEA 配置安卓(Android)开发环境的教程详解(新手必看)

      上移动端的测试课,老师和同学们用的都是eclipse, 只有我一个人用的是idea(用了两款软件之后觉得IDEA更好),真的太难了,配置环境就只有一个人孤军奋战了,自己选择的路,爬都要爬完,害!   有大佬推荐我用Android studio,去了解了一下,这个软件也不错,考虑到已经用了IDEA那就用吧. 操作环境和基本配置 操作环境:Win 10 基本环境配置:Java 1.8 基本工具:IDEA(自行下载安装购买,支持正版!) 一.jdk的下载安装与配置 1.1下载安装 jdk的官网下载

  • Android pdf viewer在android studio应用问题说明详解

    之前一直是做.NET开发的,最近需要弄一个新闻app,能力有限,只能借助HTML5 WebAPP+android studio来完成这项工作. android studio主要用WebView来加载发布好的WebApp,打包生产APP. 其中由于显示一些pdf文档,所以研究了一下,记录一下心得,同时也希望帮助到新手们. android 显示网络pdf,基本原理:先将pdf文件通过DownloadManager下载到手机sdk某个文件夹中,然后通过android-pdf-viewer插件进行显示.

  • sweet alert dialog 在android studio应用问题说明详解

    看到这个sweet-alert-dialog很亲切,因为前端开发本人用的提示就是这个js插件,java牛人很厉害,直接弄成一个java包插件,Good! 下面记录如何引用到工程,并使用: sweet-alert-dialog插件可以直接到github上下载 地址:https://github.com/pedant/sweet-alert-dialog 或者直接到发布好的页面下载: https://github.com/pedant/sweet-alert-dialog/releases 我下载的

  • Android Studio中debug功能详解

    本文为大家分享了Android Studio debug功能的具体使用方法,供大家参考,具体内容如下 运行debug模式 1. 进入debug - 点击图中红色圆圈圈起的左边绿色按钮,运行app的debug模式,快捷键Shift+F9 - 点击图中红色圆圈圈起的右边按钮,可以选择正在运行的进程attach debugger 1. 打断点:鼠标点击编辑框左侧,出现红色圆点 断点分类 这张图可以看出断点也有行断点.方法断点.字段断点.异常断点.其实打断点仔细观察也可以发现它们的标识图片是不同的,就是

  • android studio后台服务使用详解

    Service 是 Android 系统的服务组件,适用于开发没有用户界面且长时间在后台运行的功能.通过本次试验了解后台服务的基本原理,掌握本地服务的使用方法. 1.创建一个Service服务用来完成简单的求和和比较大小的数学运算.2.创建Activity并调用该数学Service activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.

  • android studio广播机制使用详解

    Intent 是一种消息传播机制,用于组件之间数据交换和发送广播消息.通过本次实验了解 Android 系统的组件通信原理,掌握利用 Intent 启动其他组件的方法,以及利用 Intent 获取信息和发送广播消息的方法. 1.实现具有“登录”按钮的主界面,输入用户名.密码,点击登录按钮后,经过判断进入一个广播Activity(需要传递主界面的用户名) 2.在广播Activity中,输入信息,点击发送广播按钮发送广播,并且在广播接收器中接收广播并显示. activity.xml <?xml ve

  • Android Studio开发环境搭建教程详解

    对于移动端这块,笔者之前一直都是进行iOS开发的,也从来没用过Java.但是因为进入了Google Android全国大学生移动互联网创新挑战赛(进入官网)的总决赛(笔者"西部计算机教育提升计划"的项目被直接推荐进入决赛),这个比赛要求一定要提交apk程序,所以我不得不赶紧学习一下Android开发了. 下面就对自己学习的过程做一个记录. 一.安装Android Studio 笔者用的计算机配置如下: Mac下安装Android Studio应该更简单一些,只需要下载一个Android

  • Android Studio 新建项目通过git上传到码云图文教程详解

    作为一个合格的开发人员,对项目进行管理自然必不可少.今天就给各位看客介绍一下如何用git将自己的AS项目上传到码云.    一  创建远程码云代码仓库 首先我们打开码云,注册一个账号,接着在左上角处点击加号新建一个远程的项目仓库用于待会AS项目的上传,具体如下: 按照上图所示,点击创建即生成远程代码仓库.     二 开始进行AS代码的上传 首先我们打开新建好的AS项目,点击AS顶部的如下: 接着点击项目名称如下将项目加入到本地的git仓库中 之后红色的字体会变成绿色. 接着点击顶部vcs上传代

  • android studio 3.4配置Android -jni 开发基础的教程详解

    首先下载配置android studio ndk 1.打开sdkManager下载CMake和LLDB 2.配置ndk 项目新建 项目建立完毕后,工程目录如下,cpp文件夹是系统自动生成的 3.自定义 navite方法 接下来开始写自定义的一个native方法,新建一个Hello.java文件,里面写一个add求和的native方法,如下 生成c++头文件 然后在windows控制台Terminal进入hello.java所在的目录执行javac hello.java,如下 执行完毕后hello

随机推荐