package com.create.qdocumentimtest.rxjavatest;

import com.squareup.okhttp.Callback;
import com.squareup.okhttp.FormEncodingBuilder;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response; import java.io.IOException;
import java.util.HashMap;
import java.util.Objects; /**
* Created by Administrator on 2016/6/7 0007.
*/
public class HttpHelper {
String baseUrl = "";
private OkHttpClient okhttp = new OkHttpClient();
private String url; public HttpHelper(String url) {
this.url = url;
} /**
* get请求 同步方法
*
* @return
*/
public String requestByGetSync() {
Request request = new Request.Builder().url(url).build();
try {
Response response = okhttp.newCall(request).execute();//同步请求
if (!response.isSuccessful()) {
throw new IOException("Unexpected code" + response);
}
return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return null;
} /**
* get请求 异步
*
* @param callback
* @return
*/
public void requestByGetAsync(Callback callback) {
Request request = new Request.Builder().url(url).build();
okhttp.newCall(request).equals(callback);
} /**
* post异步
*
* @param callback
*/
public void requestByPostAsync(HashMap<String, Objects> map, Callback callback) {
FormEncodingBuilder formEncodingBuilder = new FormEncodingBuilder();
for (String key : map.keySet()) {
formEncodingBuilder.add(key, map.get(key) + "");
}
RequestBody body = formEncodingBuilder.build();
Request request = new Request.Builder()
.url(baseUrl + url)
.post(body)
.build();
okhttp.newCall(request).enqueue(callback);
} /**
* post 同步请求
* @param map
* @return
*/
public String requestByPostSync(HashMap<String, Objects> map) {
FormEncodingBuilder formEncodingBuilder = new FormEncodingBuilder();
for (String key : map.keySet()) {
formEncodingBuilder.add(key, map.get(key) + "");
}
RequestBody body = formEncodingBuilder.build();
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
Response response = null;
try {
response = okhttp.newCall(request).execute();
if (response.isSuccessful()) {
return response.body().string();
} else {
throw new IOException("Unexpected code " + response);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

自己封装的OKhttp请求的更多相关文章

  1. Okhttp 请求流程梳理

    最近在看 Okhttp 的源码.不得不说源码设计的很巧妙,从中能学到很多.其实网上关于 Okhttp 的文章已经很多了,自己也看了很多.但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看 ...

  2. 封装的ajax请求

    在做登录注册这类提交表单数据时,我们经常需要局部刷新网页来验证用户输入的信息,这就需要用到ajax请求,我们通常需要获取表单中的数据,发起ajax请求,通过服务程序,与数据库的数据进行比对,判断信息的 ...

  3. Android 网络请求库volley的封装,让请求更方便

    首先封装一下volley 请求 public class CustomRequest extends StringRequest { private static final String TAG = ...

  4. iOS 自己封装的网络请求,json解析的类

    基本上所有的APP都会涉及网络这块,不管是用AFNetWorking还是自己写的http请求,整个网络框架的搭建很重要. 楼主封装的网络请求类,包括自己写的http请求和AFNetWorking的请求 ...

  5. 基于AFNetworking封装的网络请求工具类【原创】

    今天给大家共享一个我自己封装的网络请求类,希望能帮助到大家. 前提,导入AFNetworking框架, 关于修改AFN源码:通常序列化时做对text/plan等的支持时,可以一劳永逸的修改源代码,在a ...

  6. mui封装的ajax请求

    由于项目中引进MUI框架,所以就不需要引进jquery,但需要和后台交互时,常写为jquery格式:所以笔者觉得有必要将mui封装的ajax请求在这里提一下: 1,mui框架基于htm5plus的XM ...

  7. javascript 异步请求封装成同步请求

    此方法是异步请求封装成同步请求,加上token验证,环境试用微信小程序,可以修改文件中的ajax,进行封装自己的,比如用axios等 成功码采用标准的 200 到 300 和304 ,需要可以自行修改 ...

  8. 微信小程序设置全局请求URL 封装wx.request请求

    app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * metho ...

  9. uni-app 封装接口request请求

    我们知道一个项目中对于前期架构的搭建工作对于后期的制作有多么重要,所以不管做什么项目我们拿到需求后一定要认真的分析一下,要和产品以及后台沟通好,其中尤为重要的一个环节莫过于封装接口请求了.因为前期封装 ...

随机推荐

  1. runtime获取类名,遍历变量,遍历对象,遍历方法

  2. set方法内存分析

    // //  main.m //  04-set方法的内存管理分析 // //  Created by apple on 14-3-17. // // #import <Foundation/F ...

  3. Map的基本用法(Java)

    package home.collection.arr; import java.awt.Window.Type; import java.util.ArrayList; import java.ut ...

  4. [Linux Tips] 1. 查看端口

    查看监听的端口 # netstat -lnp

  5. cache与SDRAM

    hugohong hugohong 本版等级:   #2 得分:20回复于: 2009-04-19 21:51:03 牛人说的,拿出来分享一下:cache是高速缓冲, 解决高速cpu和相对低速sdra ...

  6. centos每天一句命令

    shutdown -h now 立刻关机  后面可以加上关键的时间  -r 重启 reboot 重启  同时记载以下,仅仅给刚刚接触的新手来说的  按两次tab 键会自动命令 cd 到目录下 su r ...

  7. extjs 常见的小问题

    今天,小白就来总结下extjs的使用的时候的各种小问题或者说是小技巧.希望能够给各位刚接触extjs的朋友一点帮助. 1.当存在store的各种组件的store的autoload属性为false的时候 ...

  8. linux第9天 UDP

    今天学了一点UDP知识,还是IP协议.都不是重点,重点是socket服务器框架 不过还是把今天学的东西,先罗列出来,将来复习的时候方便 q  UDP报文可能会丢失.重复 q  UDP报文可能会乱序 q ...

  9. 开源日志技术log4j

    老师的总结: 日志:除了能记录异常信息,还可以记录程序正常运行时的关键信息. 使用log4j来进行日志文件记录经典步骤: 001.在项目中创建一个lib文件夹,然后将下载好的jar包copy到该文件夹 ...

  10. HDU 3691 Nubulsa Expo(全局最小割Stoer-Wagner算法)

    Problem Description You may not hear about Nubulsa, an island country on the Pacific Ocean. Nubulsa ...