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. jvisualvm远程连接

    1. 今天用jvisualvm远程连接linux上的jdk,jxm方式没有连接成功,后来发现是tomcat安装目录bin下的catalina.sh文件下的JAVA_OPTS中内容格式不对,要有空格,修 ...

  2. runAllManagedModulesForAllRequests

    https://weblog.west-wind.com/posts/2012/Oct/25/Caveats-with-the-runAllManagedModulesForAllRequests-i ...

  3. Android给控件添加默认点击效果

    Android控件点击效果 Android中Button控件是有点击效果的,但是像TextView.ImageView.各种Layout是没有点击效果的,给TextView设置点击事件后,加个点击效果 ...

  4. 接口测试总结分享(http与rpc)

    接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 一.了 ...

  5. 微信小程序支付+php后端

    最近在做自有项目后端用的是thinkphp5.1框架,闲话不说直接上代码 小程序代码 wxpay: function(e){ let thisid = e.currentTarget.dataset. ...

  6. [C#]左移和右移

    参考链接: https://www.cnblogs.com/tjudzj/p/4190878.html https://www.cnblogs.com/wwwzzg168/p/3570152.html ...

  7. pyspider 笔记

    fetch_type='js' 运行 js代码

  8. 以time.py为文件名时,调用time包

    以time.py为文件名时,调用time包,会报有什么问题呢,思考一下

  9. DO,DTO和VO的使用

    DO,DTO和VO的使用 DO:对应数据库表结构 VO:一般用于前端展示使用 DTO:用于数据传递.(接口入参和接口返回值都可以) 以ssm框架为例: controller层: public List ...

  10. React事件处理

    function ActionLink() { function handleClick(e) { e.preventDefault(); console.log('链接被点击'); } return ...