OkHttp post实例
来源:互联网 发布:vue.js 动态添加div 编辑:程序博客网 时间:2024/04/28 04:57
最近一直在用OKHttp,现在就上实例简单介绍一下。
概述:
OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势。
OKHttp网站:https://github.com/square/okhttp
Jar引入:
可以通过下载jar包导入或者通过构建的方式导入
compile 'com.squareup.okhttp3:okhttp:3.4.1'
这样studio就会自动去下载或者构建。
用法
向网络发起请求的时候,最常用的就是GET和POST,下面以POST为例
POST一般需要传入参数,甚至一些header,传入参数或者header
比如传入header
Request request = new Request.Builder() .url("https://api.github.com/repos/square/okhttp/issues") .header("User-Agent", "OkHttp Headers.java") .addHeader("Accept", "application/json; q=0.5") .addHeader("Accept", "application/vnd.github.v3+json") .build();传入POST参数
RequestBody formBody = new FormEncodingBuilder() .add("platform", "android") .add("name", "bug") .add("subject", "参数") .build(); Request request = new Request.Builder() .url(url) .post(body) .build();
Response response = client.newCall(request).execute(); if (response.isSuccessful()) { return response.body().string(); } else { throw new IOException("Unexpected code " + response); }
下面POST实例:
在MainActivity中
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; String path="http://japi.juhe.cn/tv/getCategory"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); new Thread(new Runnable() { @Override public void run() { OkHttpClient okHttpClient = new OkHttpClient(); FormBody body = new FormBody.Builder() .add("key", "32d6fd626e96bc714744a2fc43aae475") .build(); Request request = new Request.Builder() .url(path) .post(body) .build(); Call call = okHttpClient.newCall(request); try { Response response = call.execute(); if (response.code()==200) { Log.e(TAG, "onCreate: "+"成功了"); byte[] bytes = response.body().bytes(); String s = new String(bytes); Log.e(TAG, "onCreate: "+s ); //解析数据 JSONObject jo=new JSONObject(s); JSONArray result = jo.getJSONArray("result"); ArrayList<String> lists=new ArrayList<String>(); for (int i=0;i<result.length();i++){ JSONObject jo1= (JSONObject) result.get(i); String name = jo1.getString("name"); lists.add(name); } Log.e(TAG, "onCreate: "+ lists.size() ); } } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } }).start(); }}
在XML文件中:
<ImageView android:id="@+id/iv" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" />
在清单文件中:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
1 0
- OkHttp post实例
- okhttp-post
- OKhttp post请求
- okHttp post&get请求
- OkHttp Post请求方式
- OkHttp中post使用方法
- Java-OkHttp-03-Post
- Okhttp POST请求
- okhttp的post请求
- okhttp的post用法
- OkHttp getand post 请求
- okhttp get post请求
- okhttp 登录post请求
- OKhttp post上传文件
- okhttp post请求
- OkHttp post请求编码问题
- OkHttp get post 简单用法
- OkHttp get和post封装
- 383. Ransom Note
- 给iamseseJS加上FLV播放器 -- 呵呵呵 做的很郁闷,越来越难了
- 编译问题总结记录
- 编译 uvc_streamer报错
- 使用JAVA打造给予浏览器的桌面应用
- OkHttp post实例
- 单片机--uart
- 从微软的Oxite谈JAVA CMS 将会步履维艰
- Linux - C预习内容(五)
- 基础篇:-- 语法 1
- BZOJ4704 旅行
- 今天公司的三个域名全部遭劫持 -- 经理让重新申请 -- 想域名中 ...
- 计算机的组成及其功能
- 发钱啦 发钱啦 今晚吃大餐呐 今晚叫MM呀