http请求工具-OkHttp用法

OKHttp介绍

okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。

okhttp有自己的官网,官网网址:OKHttp官网如果想了解原码可以在github上下载,地址是:https://github.com/square/okhttp

在AndroidStudio中使用不需要下载jar包,直接添加依赖即可: compile ‘com.squareup.okhttp3:okhttp:3.4.1’

在开发中我们会经常需要用到http请求,这里简单介绍一个http请求工具okHttp的用法

1、导入jar包

1 <dependency>
2     <groupId>com.squareup.okhttp3</groupId>
3     <artifactId>okhttp</artifactId>
4     <version>3.9.1</version>
5 </dependency>

2、为了便于以后使用,这里封装一个OkHttpUtil的工具类

get请求

 1 /**
 2  * get请求
 3  * @param url 请求地址
 4  * @return 请求结果
 5  */
 6 public String doGet(String url) {
 7     OkHttpClient okHttpClient = new OkHttpClient();
 8     Request request = new Request.Builder().url(url).build();
 9     Call call = okHttpClient.newCall(request);
10     try {
11         Response response = call.execute();
12         return response.body().string();
13     } catch (IOException e) {
14         e.printStackTrace();
15     }
16     return null;
17  }

post请求分为两种,From表单形式和JSON参数形式

  • Form表单形式
 1 /**
 2  * 表单形式post请求
 3  * @param url 请求地址
 4  * @param map post请求参数
 5  * @return 请求结果
 6  */
 7 public String doPost(String url,Map<String,String> map){
 8     OkHttpClient client = new OkHttpClient();
 9     //构建一个formBody builder
10     FormBody.Builder builder = new FormBody.Builder();
11     //循环form表单,将表单内容添加到form builder中
12     for (Map.Entry<String,String> entry : map.entrySet()) {
13         String key = entry.getKey();
14         String value = entry.getValue();
15         builder.add(key,value);
16     }
17     //构建formBody,将其传入Request请求中
18     FormBody body = builder.build();
19     Request request = new Request.Builder().url(url).post(body).build();
20     Call call = client.newCall(request);
21     //返回请求结果
22     try {
23         Response response = call.execute();
24         return response.body().string();
25     } catch (IOException e) {
26         e.printStackTrace();
27     }
28     return null;
29 }
  • JSON参数形式
 1 /**
 2  * Json body形式的post请求
 3  * @param url 请求地址
 4  * @return 请求结果
 5  */
 6 public String doPost(String url,String json){
 7     OkHttpClient client = new OkHttpClient();
 8     RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json);
 9     Request request = new Request.Builder()
10             .post(body)
11             .url(url).
12                     build();
13     Call call = client.newCall(request);
14     //返回请求结果
15     try {
16         Response response = call.execute();
17         return response.body().string();
18     } catch (IOException e) {
19         e.printStackTrace();
20     }
21     return null;
22 }

原文地址:https://www.cnblogs.com/PreachChen/p/8716540.html

时间: 2024-10-05 04:55:46

http请求工具-OkHttp用法的相关文章

压力测试工具tsung用法简介

tsung是用erlang开发的一款简单易用的压力测试工具,可以生成成千上万的用户模拟对服务器进行访问.目前对tsung的理解也仅限于会简单的应用,其内部结构没有深入研究过. 1.安装 tsung是用erlang编写的,所以首先安装erlang的运行环境.然后就是按照tsung的官网下载编译tsung.需要注意的是,生成测试报告需要gnuplot和perl的支持,其中perl需要安装Template扩展.具体安装过程请看相关手册或者google之. 2.配置文件 默认情况下,tsung会加载配置

发送请求工具—Advanced REST Client

Advanced REST Client是Chrome浏览器下的一个插件,通过它能够发送http.https.WebSocket请求.在Chrome商店下搜索Advanced REST Client,就可以找到 Advanced REST Client的界面 Advanced REST Client在google code的地址:http://code.google.com/p/chrome-rest-client/ 以下来介绍Advanced REST Client发送请求的方法 1. 发送h

我的Android进阶之旅------&gt;Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类

下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.UnsupportedEn

开源个.NetCore写的 - 并发请求工具PressureTool

本篇和大家分享的是一个 并发请求工具,并发往往代表的就是压力,对于一些订单量比较多的公司这种情况很普遍,也因此出现了很多应对并发的解决方案如:分布式,队列,数据库锁等: 对于没有遇到过或者不可能线上来处理并发问题的我们来说,需要模拟这种环境,不错这就是写并发请求工具的目的: . 对于api接口做并发请求 . NetCore来写的能跨平台运行 . 允许配置多个目标地址,进行同时并发请求 . 支持Get,Post请求方式(post参数支持:xml,json格式) 工具设计的原理 工具的全部代码都开源

iOS_21团购_通过block对请求工具类的代理方法进行二次封装

最终效果图: [点评]提供的工具类DPAPI 在请求完毕后,使用的是代理机制,当一次请求成功或者失败时,会调用代理的相应方法 为了将点评提供的工具类DPAPI进行二次封装, 再次定义了一个block: typedef  void(^RequestDoneCallBackBlock)(id deals,NSError *err); 该block有两个参数, 分别是成功时,服务器返回的deals字典数组 另一个参数是:请求失败时,服务器返回的失败信息 两个参数分别对应代理的两个方法(即成功.失败时分

PHP测试POST请求工具

PHP测试POST请求工具:HttpRequester

基于Android Volley的网络请求工具

基于Android Volley的网络请求工具. 一.说明 AndroidVolley,Android Volley核心库及扩展工程.AndroidVolleySample,网络请求工具示例工程.Release,jar包.直接下载 二.Volley基本处理流程: 1.应用初始化Volley.2.Volley创建一个RequestQueue.NetworkDispatcher组及Network.3.RequestQueue即一个Request队列,RequestQueue会创建一个Executor

网络请求工具 cURL

网络请求工具 cURL 2017-08-16 cRUL 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. 查看网页源码 1 $ curl baidu.com 1 2 3 <html> <meta http-equiv="refresh" content="0;url=http://www.baidu.com/"> </html> 如果要把这个网页保存下来,可以使

ios swift 打造自己的http请求工具

在ios开发中,网络请求是不可以少的,说到网络请求可能用的最多的就是第三方的比人比较有名的AFNetworking.Alamofire等,原生的用的少.今天就用ios提供的原生方法来打造属于自己的一个网络请求工具吧.大神的成长之路,现在就开始起航. 第一步:先建一个类比如叫 Http 如下: //定义请求类型 enum HttpMethod { case GET, POST } //在http中定义类方法来做请求,方便使用 class Http { class func request(meth