ä¾èµ
implementation files('libs/retrofit-2.9.0.jar')
implementation("com.squareup.okhttp3:okhttp:4.8.1")
// https://mvnrepository.com/artifact/com.android.volley/volley
compile group: 'com.android.volley', name: 'volley', version: '1.1.1'
Retrofitï¼åºå±å°è£ okhttpï¼
package com.wintec.netframworktest;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TestRetrofit();
}
private void TestRetrofit() {
Retrofit mRetrofit= new Retrofit.Builder()
.baseUrl("https://wap.peopleapp.com/article/")
.build();
BookService mBookService = mRetrofit.create(BookService.class);
Call mBookCall = mBookService.getBook(5852020);
// Log.e("wy","æå¡å¨è¯·æ±æ°æ®æ°æ®: "+ mBookCall.request().body().toString());
mBookCall.enqueue(new Callback() {
@Override
public void onResponse(final Call mCall, final Response mResponse) {
Log.e("wy","æå¡å¨ååºæ°æ®: "+ mResponse.toString());
}
@Override
public void onFailure(final Call mCall, final Throwable mThrowable) {
Log.e("wy","ç½ç»å¼å¸¸åå : "+ mThrowable);
}
});
}
}
package com.wintec.netframworktest;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
public interface BookService {
@GET("5933922/{id}")
Call getBook(@Path("id") int id);
}
package com.wintec.netframworktest;
import android.os.Bundle;
import android.util.Log;
import java.io.IOException;
import androidx.appcompat.app.AppCompatActivity;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OkhttpTestActivity extends AppCompatActivity {
OkHttpClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Request request = new Request.Builder()
.url("https://wap.peopleapp.com/article/5933922/5852020")
.build();
client = new OkHttpClient();
// OkHttpçåæ¥è¯·æ±ä¼é»å¡å½å线ç¨ï¼å æ¤ä¸è½å¨UI线ç¨ä¸è¯·æ±ï¼éè¦å¼å¯å线ç¨ï¼å¨å线ç¨ä¸åé请æ±ã
// new Thread(new Runnable() {
// @Override
// public void run() {
// try {
// Log.e("wy","okhttpåæ¥è¯·æ±è¿å: "+ client.newCall(request).execute().toString());
// } catch (IOException mE) {
// mE.printStackTrace();
// }
// }
// }).start();
// å¼æ¥è¯·æ±
Call call=client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.e("wy","okhttpå¼æ¥è¯·æ±responseè¿å:"+response.toString());
}
@Override
public void onFailure(Call call, IOException e) {
Log.e("wy","okhttpå¼æ¥è¯·æ±å¼å¸¸:"+e);
}
});
}
}
package com.wintec.netframworktest;
import android.os.Bundle;
import android.util.Log;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import androidx.appcompat.app.AppCompatActivity;
public class VolleyTestActivity extends AppCompatActivity {
RequestQueue mQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mQueue = Volley.newRequestQueue(getApplicationContext());
loadGetStr("https://wap.peopleapp.com/article/5933922/5852020");
}
private void loadGetStr(String url) {
StringRequest srReq = new StringRequest(Request.Method.GET, url,
new StrListener(), new StrErrListener()) {
protected final String TYPE_UTF8_CHARSET = "charset=UTF-8";
// éåparseNetworkResponseæ¹æ³æ¹åè¿å头åæ°è§£å³ä¹±ç é®é¢
// 主è¦æ¯çæå¡å¨ç¼ç ï¼å¦ææå¡å¨ç¼ç ä¸æ¯UTF-8çè¯é£ä¹å°±éè¦èªå·±è½¬æ¢ï¼åä¹åä¸éè¦
@Override
protected Response parseNetworkResponse(
NetworkResponse response) {
// try {
// String type = response.headers.get(HTTP.CONTENT_TYPE);
// if (type == null) {
// type = TYPE_UTF8_CHARSET;
// response.headers.put(HTTP.CONTENT_TYPE, type);
// } else if (!type.contains("UTF-8")) {
// type += ";" + TYPE_UTF8_CHARSET;
// response.headers.put(HTTP.CONTENT_TYPE, type);
// }
// } catch (Exception e) {
// }
return super.parseNetworkResponse(response);
}
};
srReq.setShouldCache(true); // æ§å¶æ¯å¦ç¼å
startVolley(srReq);
}
// æ·»å åå¼å§è¯·æ±
private void startVolley(Request req) {
// 设置è¶
æ¶æ¶é´
// req.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 1, 1.0f));
// å°è¯·æ±å å
¥éå
mQueue.add(req);
// å¼å§å起请æ±
mQueue.start();
}
// Str请æ±æååè°
private class StrListener implements Response.Listener {
@Override
public void onResponse(String arg0) {
Log.e("wy","volley请æ±æåè¿å: "+ arg0);
}
}
// å
±ç¨å¤±è´¥åè°
private class StrErrListener implements Response.ErrorListener {
@Override
public void onErrorResponse(VolleyError arg0) {
Log.e("wy","volley请æ±é误è¿å: "+ arg0);
}
}
}