展会信息港展会大全

最流行的OKHTTP库,比volley和httpclient好用 1 支持SPD...
来源:互联网   发布日期:2016-01-14 12:10:03   浏览:6279次  

导读:OkHttpClient okhttpclient; final MediaType TYPE_JSON= MediaType.parse(application/json; charset=utf-8); public OKHTTP_Tool() { okhttpclient = new OkHttpClient(); ConfigureTimeouts(); } public void setAuthenticator(){ okhttpclient.setAuthen...

OkHttpClient okhttpclient;

final MediaType TYPE_JSON= MediaType.parse("application/json; charset=utf-8");

public OKHTTP_Tool() {

okhttpclient = new OkHttpClient();

ConfigureTimeouts();

}

public void setAuthenticator(){

okhttpclient.setAuthenticator(new Authenticator() {

public Request authenticate(Proxy proxy, Response response) {

String credential = Credentials.basic("jesse", "password1");

return response.request().newBuilder()

.header("Authorization", credential)

.build();

}

public Request authenticateProxy(Proxy proxy, Response response) {

return null; // Null indicates no attempt to authenticate.

}

});

}

public void ConfigureTimeouts(){

okhttpclient.setConnectTimeout(10, TimeUnit.SECONDS);

okhttpclient.setWriteTimeout(10, TimeUnit.SECONDS);

okhttpclient.setReadTimeout(10, TimeUnit.SECONDS);

}

public String get(String url) throws IOException {

Request request = new Request.Builder()

.url(url)

.build();

Response response = okhttpclient.newCall(request).execute();

if (response.isSuccessful()) {

return response.body().string();

} else {

throw new IOException("Unexpected code " + response);

}

}

public String post_Json(String url, String json) throws IOException {

RequestBody body = RequestBody.create(TYPE_JSON, json);

Request request = new Request.Builder()

.url(url)

.post(body).build();

Response response = okhttpclient.newCall(request).execute();

if (response.isSuccessful()) {

return response.body().string();

} else {

throw new IOException("Unexpected code " + response);

}

}

//即post_ValuePair("www.baidu.com",new String["username","zhb"],new String["password","123"]);

public String post_ValuePair(String url,String[]... namevaluepairs) throws IOException{

FormEncodingBuilder formbuilder = new FormEncodingBuilder();

for(String[] namevaluepair:namevaluepairs){

formbuilder.add(namevaluepair[0], namevaluepair[1]);

}

RequestBody body = formbuilder.build();

Request request = new Request.Builder()

.url(url)

.post(body).

build();

Response response = okhttpclient.newCall(request).execute();

if (response.isSuccessful()) {

return response.body().string();

} else {

throw new IOException("Unexpected code " + response);

}

}

import java.io.IOException;

import java.util.List;

import java.util.concurrent.TimeUnit;

import org.apache.http.client.utils.URLEncodedUtils;

import org.apache.http.message.BasicNameValuePair;

import cn.wiz.sdk.constant.WizConstant;

import com.squareup.okhttp.Callback;

import com.squareup.okhttp.OkHttpClient;

import com.squareup.okhttp.Request;

import com.squareup.okhttp.Response;

//这部分以异步操作居多

public class OkHttpUtil {

private static final OkHttpClient mOkHttpClient = new OkHttpClient();

static{

mOkHttpClient.setConnectTimeout(30, TimeUnit.SECONDS);

}

/**

* 该不会开启异步线程。

* @param request

* @return

* @throws IOException

*/

public static Response execute(Request request) throws IOException{

return mOkHttpClient.newCall(request).execute();

}

/**

* 开启异步线程访问网络

* @param request

* @param responseCallback

*/

public static void enqueue(Request request, Callback responseCallback){

mOkHttpClient.newCall(request).enqueue(responseCallback);

}

/**

* 开启异步线程访问网络, 且不在意返回结果(实现空callback)

* @param request

*/

public static void enqueue(Request request){

mOkHttpClient.newCall(request).enqueue(new Callback() {

@Override

public void onResponse(Response arg0) throws IOException {

}

@Override

public void onFailure(Request arg0, IOException arg1) {

}

});

}

public static String getStringFromServer(String url) throws IOException{

Request request = new Request.Builder().url(url).build();

Response response = execute(request);

if (response.isSuccessful()) {

String responseUrl = response.body().string();

return responseUrl;

} else {

throw new IOException("Unexpected code " + response);

}

}

private static final String CHARSET_NAME = "UTF-8";

/**

* 这里使用了HttpClinet的API。只是为了方便

* @param params

* @return

*/

public static String formatParams(List<BasicNameValuePair> params){

return URLEncodedUtils.format(params, CHARSET_NAME);

}

/**

* 为HttpGet 的 url 方便的添加多个name value 参数。

* @param url

* @param params

* @return

*/

public static String attachHttpGetParams(String url, List<BasicNameValuePair> params){

return url + "?" + formatParams(params);

}

/**

* 为HttpGet 的 url 方便的添加1个name value 参数。

* @param url

* @param name

* @param value

* @return

*/

public static String attachHttpGetParam(String url, String name, String value){

return url + "?" + name + "=" + value;

}

}

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港