Android Studio OkHttpClient使用教程详解

2020-10-10 0 512

本次来记录下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();
   }

返回信息:

Android Studio OkHttpClient使用教程详解

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

遇见资源网 Android Android Studio OkHttpClient使用教程详解 http://www.ox520.com/23743.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务