implementation ‘com.squareup.okhttp3:okhttp:3.12.1’
implementation ‘eu.the4thfloor.volley:com.android.volley:2015.05.28’
// An highlighted block
package bw.com.day18;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.widget.ImageView;
import com.android.volley.AuthFailureError;
import com.android.volley.RequestQueue;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.acl.LastOwnerException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.logging.Handler;
import okhttp3.Call;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class Utils {
/**
* xutils实现下载图片的功能
* */
public void xutils_loadImage(ImageView imageView,String url){
x.image().bind(imageView,url);
}
public void xutils_loadJson_get(String url){
x.http().get(new RequestParams(url), new Callback.CommonCallback<String>(){
@Override
public void onSuccess(String result) {
Log.e("###",result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
public void xutils_loadJson_post(String url,String page,String num){
RequestParams params = new RequestParams(url);//请求参数的对象
params.addQueryStringParameter(page,num);
x.http().post(params, new Callback.CacheCallback<String>() {
@Override
public void onSuccess(String result) {
Log.e("###",result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
@Override
public boolean onCache(String result) {
return false;
}
});
}
public String httpUrlConnection_post(String URL){
try {
URL url = new URL(URL);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setReadTimeout(200);
httpURLConnection.setConnectTimeout(200);
//支持输入和输出
httpURLConnection.setDoInput(true);//允许输入
httpURLConnection.setDoOutput(true);//允许输出
httpURLConnection.setUseCaches(false);
// httpConn.connect();
// DataOutputStream out = new DataOutputStream(httpConn.getOutputStream());
// String params = "phones=" + URLEncoder.encode(strPhoneNumber, "UTF-8");
// // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写到流里面
// out.writeBytes(params);
// out.flush();
// out.close();
httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpURLConnection.connect();
OutputStream os = httpURLConnection.getOutputStream();
String pram = "page";
String value = "2";
os.write("phone=18335796374&passwd=1111".getBytes());
os.close();
Log.e("@@@@",URL);
if (httpURLConnection.getResponseCode() == 200){
InputStream is = httpURLConnection.getInputStream();
byte[] bytes = new byte[1024];
int len = -1;
StringBuffer buffer = new StringBuffer();
while ((len = is.read(bytes))!=-1){
buffer.append(new String(bytes,0,len));
}
return buffer.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* Okhttp:第三方下载框架
* get:
* 同步--线程
* 异步:
* post:
* 同步--线程
* 异步:
* */
//同步GET
public String Okhttp_GET(String urlPath){
// OkHttpClient.Builder builder = new OkHttpClient.Builder();
// builder.connectTimeout(20000, TimeUnit.MICROSECONDS);//设置连接超时
// builder.readTimeout(4,TimeUnit.MINUTES);//分钟
//
// OkHttpClient client = builder.build();//客户端
// //方法一
//// Request.Builder builder1 = new Request.Builder();
//// builder1.url(urlPath);//访问的网址
//// Request request1 = builder1.build();
// //方法二
// Request request2 = new Request.Builder().url(urlPath).get().build();
//
// Call call = client.newCall(request2);
// Response response;
// try {
// response = call.execute();
// String json = response.body().string();//拿到了json字符串
// return json;
// //放线程中
// } catch (Exception e) {
// e.printStackTrace();
// }
Request request = new Request.Builder().url(urlPath).get().build();
OkHttpClient client = new OkHttpClient();
try {
Response response = client.newCall(request).execute();
if (response.isSuccessful()){
String json = response.body().string();
return json;
}else{
//不成功
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 同步的POST
* https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&
* */
public String Okhttp_POST(String URL){
// OkHttpClient.Builder cBuilder = new OkHttpClient.Builder();
// OkHttpClient client = cBuilder.build();
//
// Request.Builder rBuilder = new Request.Builder();
// rBuilder.url(URL);
//
// FormBody.Builder builder = new FormBody.Builder();//表单
// builder.add("phone","18335796321");
// builder.add("passwd","123456");
// FormBody body = builder.build();
// rBuilder.post(body);
//
// Request request = rBuilder.build();
// Call call = client.newCall(request);
//
// try {
// Response response = call.execute();
// String json = response.body().string();
// return json;
// } catch (IOException e) {
// e.printStackTrace();
// }
RequestBody body = new FormBody.Builder()
.add("phone","wwwwwwww")
.add("passwd","123")
.build();
Request request = new Request.Builder().url(URL).post(body).build();
OkHttpClient client = new OkHttpClient();
try {
Response response = client.newCall(request).execute();
String json = response.body().string();
return json;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 异步 GET
* */
public void asyncGET(String strUrl){
final Request request = new Request.Builder().url(strUrl).get().build();//获得请求对象
OkHttpClient client = new OkHttpClient();//获得客户端对象
Call call = client.newCall(request);
call.enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
String str = "获取失败!";
Log.e("####",str);
}
@Override
public void onResponse( Call call, Response response) throws IOException {
String json = response.body().string();
Log.e("####",json);
}
});
}
public void asyncPOST(String strUrl){
OkHttpClient client = new OkHttpClient();//获得client
FormBody body = new FormBody.Builder()
.add("phone","qqqqqqqqqqq")
.add("passwd","123")
.build();
Request request = new Request.Builder().url(strUrl).post(body).build();
Call call = client.newCall(request);
call.enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
String str = "注册失败!";
Log.e("####",str);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string();
Log.e("####",json);
}
});
}
//volley下载图片
public void volleyImage(String strUrl, Context context, final ImageView imageView){
ImageRequest imageRequest = new ImageRequest(strUrl, new com.android.volley.Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
imageView.setImageBitmap(response);
}
},300,500,Bitmap.Config.RGB_565,errorListener);
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(imageRequest);
requestQueue.start();
}
public void volleyGET(String urlStr, Context context){
RequestQueue requestQueue = Volley.newRequestQueue(context);//获得volley队列
StringRequest request = new StringRequest(StringRequest.Method.GET,urlStr,listener,errorListener);
requestQueue.add(request);//将请求添加到队列
requestQueue.start();//启动队列
}
//结果
com.android.volley.Response.Listener<String> listener = new com.android.volley.Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.e("###",response);
}
};
com.android.volley.Response.ErrorListener errorListener = new com.android.volley.Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Log.e("###","失败!");
}
};
//Post
public void volleyPOST(String urlStr, Context context){
RequestQueue requestQueue = Volley.newRequestQueue(context);
StringRequest request = new StringRequest(StringRequest.Method.POST,urlStr,listener,errorListener){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String,String> map = new HashMap<>();
map.put("phone","yyyy");
map.put("passwd","123");
return map;
}
};
requestQueue.add(request);
requestQueue.start();
}
}
// An highlighted block
package bw.com.day18;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import java.util.concurrent.ExecutionException;
import bw.com.day1.R;
public class HttpActivity extends AppCompatActivity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_http);
imageView = findViewById(R.id.imageview);
// try {
// String s = new MyTask().execute("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&").get();
// Log.e("###",s);
// } catch (ExecutionException e) {
// e.printStackTrace();
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// new Utils().asyncGET("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1");
// new Utils().asyncPOST("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&");
// new Utils().volleyGET("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1",this);
// new Utils().volleyPOST("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&",this);
new Utils().volleyImage("https://img02.sogoucdn.com/app/a/100520024/47751b2ef736cef91e5728d50974fc63",this,imageView);
}
class MyTask extends AsyncTask<String,String,String>{
@Override
protected String doInBackground(String... strings) {
return new Utils().Okhttp_POST(strings[0]);
}
}
}