1. 在build.gradle里引入okhttp库

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.google.code.gson:gson:2.6.2'
}

2. 创建okhttp对象,这里是用赖汉模式,减少系统的记忆体消耗。

public class OkHttp {

    // okHttp
private static OkHttpClient okHttpClient; // 饿汉式
private static OkHttp okHttp = new OkHttp(); private OkHttp(){} public static OkHttp getInstance(){
okHttpClient = new OkHttpClient();
return okHttp;
}
}

3. 在okhttp对象里创建getResponse方法,返回服务器的回应。

    // 取得數據
private Request request;
private Response response;
private String strContext;
public String getResponse(String strURL) {
try {
// 创建okhttp Builder,从URL返回服务器的回应
request = new Request.Builder()
.url(strURL)
.build();
// response储存服务器的回应
response = okHttpClient.newCall(request).execute();
// 把response转换成string
strContext = response.body().string();
}catch (IOException e) {
strContext = e.toString();
}
return strContext;
}

4. 如果是想利用okhttp上传文件,可用uploadImage方法。

    // 上傳圖片
private String uploadResult;
public String uploadImage(String URL, String userId, File file, String fileName) {
try {
// MultipartBuilder,是上传文件的query
// addFormDataPart方法:@param [String]name, [String]value
// addFormDataPart方法:@param [String]name, [String]fileName, [String]fileType, [String]file
RequestBody requestBody = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addFormDataPart("portrait", fileName,
RequestBody.create(MediaType.parse("image/jpg"), file))
.addFormDataPart("userId", userId)
.addFormDataPart("action", "updateProtrait")
.build(); // request方法: @param [String]URL, [RequestBody]requestBody
Request request = new Request.Builder()
.url(URL)
.post(requestBody)
.build(); // response储存服务器的回应
Response response = okHttpClient.newCall(request).execute();
// 把response转换成string
uploadResult = response.body().string(); } catch (IOException e) {
uploadResult = e.toString();
}
return uploadResult;
}

Okhttp教程 (1)的更多相关文章

  1. okhttp教程——起步篇

    okhttp教程--起步篇 这篇文章主要总结Android著名网络框架-okhttp的基础使用,后续可能会有关于他的高级使用. okhttp是什么 okhttp是Android端的一个Http客户端, ...

  2. OkHttp使用教程

    Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient.关于HttpURLConnection和HttpClient的选择>>官方博客尽管Go ...

  3. OkHttp使用进阶 译自OkHttp Github官方教程

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/3997368.html 没有使用过OkHttp的,可以先看Ok ...

  4. OkHttp使用进阶(译自OkHttp官方教程)

    没有使用过OkHttp的,可以先看OkHttp使用介绍 英文版原版地址 Recipes · square/okhttp Wiki 同步get 下载一个文件,打印他的响应头,以string形式打印响应体 ...

  5. OkHttp使用教程——网络操作之OkHttp, Volley以及Gson

    写这篇文章的动机 在安卓项目中有一个问题可能无法避免:网络.不管你是加载图片,请求API数据还是从因特网上获得一个字节,你都是在使用网络. 鉴于网络在安卓中的重要性与基础性,当今安卓开发者面临的问题之 ...

  6. Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》

    在之前的小案例中写过一篇使用HttpUrlConnection获取网络数据的例子.在OKhttp盛行的时代,当然要学会怎么使用它,本篇就对其基本使用做一个介绍,然后再使用它的接口回调的方式获取相同的数 ...

  7. OkHttp 设置 User-Agent 教程

    我们知道OkHttp走的并不是原生的http请求,因此在header里面并没有真正的User-Agent,而是“okhttp/版本号”这样的字符串,因为后台需要统计信息,要求传入正确的User-Age ...

  8. [转]OkHttp使用完全教程

    1. 历史上Http请求库优缺点 在讲述OkHttp之前, 我们看下没有OkHttp的时代, 我们是如何完成http请求的.在没有OkHttp的日子, 我们使用HttpURLConnection或者H ...

  9. 【转】OkHttp使用进阶 译自OkHttp Github官方教程

    作者:GavinCT 出处:http://www.cnblogs.com/ct2011/ 英文版原版地址 Recipes · square/okhttp Wiki 同步get 下载一个文件,打印他的响 ...

随机推荐

  1. 服务器io资源查看

    资源查看命令安装 yum provides /usr/bin/find #查看命令是哪个软件包安装的 执行 yum provides */netstat 命令就可以看到提供命令的工具包net-tool ...

  2. 实验吧Web-难-猫抓老鼠

    看题目好像就有让我们抓包的意思. 不管输什么走势一个结果:Check Failed! 也用bp爆破了,但是出不来什么结果. 抓到包后,送到repeater中go一下,发现有一串base64码,以为解码 ...

  3. request和response的setCharacterEncoding()方法

    1.pageEncoding=”UTF-8”的作用是设置JSP编译成Servlet时使用的编码.2.contentType=”text/html;charset=UTF-8”的作用是指定服务器响应给浏 ...

  4. xxe

    XXE xml external entity injection xml外部实体注入 概述 xml是可扩展的标记语言,涉及被用来传输.存储数据 html被用来显示数据 其中xml的标签没有预定义的, ...

  5. Spring Boot作为Spring Cloud基础设施

    spring cloud包含的核心特性: Distributed/versioned configuration(分布式配置) Service registration and discovery(服 ...

  6. CSS样式实现两个图片平分三角

    <div class='pageOption'> <a href='#' class='option' > <img src='http://imgsrc.hubbles ...

  7. QEMU和Firmadyne基本知识|模拟MIPS程序

    QEMU QEMU是纯软件实现的一个虚拟化模拟器,几乎可以模拟任何硬件设备,支持多种架构. QEMU安装命令 sudo apt-get install qemu #user mode,包含qemu-m ...

  8. 逃生(地图上的dp)

    蒜头君在玩一款逃生的游戏.在一个n×m 的矩形地图上,蒜头位于其中一个点.地图上每个格子有加血的药剂,和掉血的火焰,药剂的药效不同,火焰的大小也不同,每个格子上有一个数字,如果格子上的数字是正数说明是 ...

  9. 视频课程 | 云原生下的Serverless浅谈

    京东云开发者社区在3月底于北京举行了以"Cloud Native时代的应用之路与开源创新"为主题的技术沙龙,现场多位技术大咖与开发者们面对面就Cloud Native进行了深入交流 ...

  10. INNER JOIN & OUTER JOIN

    INNER JOIN & OUTER JOIN 参考:sql