OkHttp的get、Post

由于没有看过书籍,不能将理论正确的描述出来,只能根据自己的理解,带大家认识下java开发下的OkHttp的get和post两种请求方式。

依赖的包为:okio-1.15.0.jar+okhttp-3.11.0.jar

如果出现NoSuchMethod情况可能是两个包产生了冲突,也可能是因为包里本身就不包含那个方法,最开始我用的okio-1.9.0.jar的包出现了该问题,查看是存在该方法,于是更换成更新的okio-1.15.0.jar,解决了冲突问题。

方法okHttpGet()里面说明了OkHttp的get请求方式,其中 new Request.Builder().url(url).build();可以换成new Request.Builder().get().url(url).build()。

方法okHttpPost()说明了post请求方式,主要需要传入参数,方式有很多种可以是JSON、Map,这里采用了最简单传参。

package http;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response; public class OkHttpTest {
public static void main(String args[]) {
OkHttpTest otget = new OkHttpTest();
String url1 = "http://baidu.com";
String url = "http://124.251.7.232:9007/axj_http_server/sms";
otget.okHttpGet(url1);
otget.okHttpPost(url);
} private void okHttpGet(String url) {
// 首先需要创建一个OkHttpClient对象用于Http请求, 可以改成全局型
OkHttpClient client = new OkHttpClient().newBuilder().build();
// 创建一个request对象
Request request = new Request.Builder().url(url).build();
// 执行和回调
client.newCall(request).enqueue(new Callback() {
public void onFailure(Call call, IOException e) { } public void onResponse(Call call, Response response)
throws IOException {
String str = response.body().string();
System.out.println("OkHttp的get()请求方式" + str);
}
}); } /*
* post请求 get不一样的地方就是传参数不一样,post请求需要把参数封装到RequestBody对象,
* 调用Request对象的post方法把RequestBody传入进去
*/
private void okHttpPost(String url) {
OkHttpClient okHttpClient = new OkHttpClient();
FormBody.Builder formBuilder = new FormBody.Builder();
formBuilder.add("name", "shixz");// 请求参数一
formBuilder.add("pass", "shixz");// 请求参数二
formBuilder.add("mobiles", "1302101XXXX");// 请求参数三
formBuilder.add("content", "OkHttp的post()请求方式.测试测试");// 请求参数四
RequestBody requestBody = formBuilder.build();
Request request = new Request.Builder().post(requestBody).url(url)
.post(requestBody).build();
try {
Response response = okHttpClient.newCall(request).execute();
String result = response.body().string();
System.out.println("OkHttp的post()请求方式" + result);
response.body().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

一步一步提升自己,只有静下来好好分析才可以理解,当有其他思想时,自己是怎么都进不到里面去的,我就是这样,突然想说只要用心,我们就会有收获。

OkHttp的get和post请求的更多相关文章

  1. Retrofit2+Rxjava+OkHttp的使用和网络请求

    Retrofit2+Rxjava+OkHttp的使用和网络请求 https://blog.csdn.net/huandroid/article/details/79883895 加入Rxjava 如果 ...

  2. OKHttp源码学习同步请求和异步请求(二)

    OKHttp get private void doGet(String method, String s) throws IOException { String url = urlAddress ...

  3. Android 普通okhttp、okhttp utils执行 post get请求,文件上传下载、请求图片

    public class OKHttpActivity extends Activity implements View.OnClickListener { public static final M ...

  4. RxAndroid+RxJava+Gson+retrofit+okhttp初步搭建android网络请求框架

    新建工程集成, 一.工具集成(2017-4-27) 首先第一步集成retrofit retrofit 的 git 网站: https://github.com/square/retrofit 在git ...

  5. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  6. 网络请求三方库——OkHttp

    我们知道在Android开发中是可以直接使用现成的API进行网络请求的,就是使用 HttpClient 和 HttpURLConnention ,而Android 4.4 之后 HttpClient  ...

  7. 自己封装的OKhttp请求

    package com.create.qdocumentimtest.rxjavatest; import com.squareup.okhttp.Callback; import com.squar ...

  8. 深入理解OkHttp源码(一)——提交请求

    本篇文章主要介绍OkHttp执行同步和异步请求的大体流程.主要流程如下图: 主要分析到getResponseWidthInterceptorChain方法,该方法为具体的根据请求获取响应部分,留着后面 ...

  9. Okhttp同步请求源码分析

    进阶android,OKhttp源码分析——同步请求的源码分析 OKhttp是我们经常用到的框架,作为开发者们,我们不单单要学会灵活使用,还要知道他的源码是如何设计的. 今天我们来分析一下OKhttp ...

随机推荐

  1. linux 终端 pac ssh登录工具使用教程

    1.下载: 首先下载deb文件:https://sourceforge.net/projects/pacmanager/ 2.安装: dpkg -i pac-4.5.5.7-all.deb 3.安装依 ...

  2. Android开发 静态static类与static方法持有Context是否导致内存泄露的疑问

    简述 在Android开发的过程中,难免会使用单例模式或者静态方法工具类.我们会让它们持有一些外部的Context或者View一般有以下几种情况: 单例模式,类的全局变量持有Context 或 Vie ...

  3. 修改系统和MySQL时区

    修改时间时区比想象中要简单: 各版本系统通用的方法 # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # cp /usr/share/zone ...

  4. PHP入门——基本巩固

    ----------一.变量 ----------二.运算 ----------三.控制结构 ----------四.函数 ----------六.字符串 ----------七.数组 ------- ...

  5. codeblock 恢复默认字体设置

    默认字体为:Courier New   我使用的codeblock版本为:17 .12. 今天我想调整一下codeblock的代码驱的字体,根据设置:settings->Editor->F ...

  6. 【Debug】逻辑分析仪数据错乱,看波形为信号耦合导致数据错乱,实际上为逻辑分析仪地线没接上!

    如图都有数据的时间段,数据错乱,实际为逻辑分析仪地线未接,接上就不会了.

  7. 供Linux学习使用的在线模拟系统

    前言 我只是一名搬运工. 最近想要找一个linux服务器用于调试shell脚本,但是公司服务器又只能内网访问,外网无法使用.对安装VMWARE+Linux镜像觉得繁琐.查找了一下资料.找到了几个在线模 ...

  8. 为什么打开fiddler电脑就不能上网,关了就能正常打开了呢?

    因为打开fiddler是它修改浏览器走代理服务器,关掉fiddler之后,代理服务器已经关闭了.但是,但是浏览器的代理模式还没改回来,就是说浏览器还要通过代理访问站点,然而代理服务器已经没有了.打开浏 ...

  9. redis远程连接不上解决办法

    结构:PC-A 运行redis client,PC-B运行redis server PC-B方面 在server中,修改配置文件redis.windows-service.conf中的: 1.注释 # ...

  10. MySQL 还原

    ## sql 还原:mysql -default-character-set=utf8 -h127.0.0.1 -uroot -pxxxxxx test2 < /data/test/db/201 ...