是github上的一个插件,用于获取网络数据,功能与HttpUrlConnection功能类似
//创建一个公共类
public class HttpUtil {
//将一个网址的不变部分先进行定义,一个传URL时只需要传变的部分
private static final String basicUrl = "http://103.244.59.105:8014/paopaoserver/";
//创建AsyncHttpClient对象
private static AsyncHttpClient client = new AsyncHttpClient();
//创建方法进行申请访问网络,同时在最后调用回调方法
public static void get(String url, RequestParams params, AsyncHttpResponseHandler asyncHttpResponseHandler){
client.get(getAbsulateUrl(url),params,asyncHttpResponseHandler);
}
//此方法用于将网址的不变部分+URL变的部分
private static String getAbsulateUrl(String relativeUrl){
return basicUrl+relativeUrl;
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button showBtn;
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bangID();
}
private void bangID() {
showBtn = findViewById(R.id.main_show_btn);
showBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_show_btn:
//创建AsyncHttpClient对象
AsyncHttpClient client = new AsyncHttpClient();
//调用get方法
client.get("https://www.csdn.net/", new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
Toast.makeText(MainActivity.this, "访问网络失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
//成功
//Log.e(TAG, "onSuccess: "+responseString );
Toast.makeText(MainActivity.this, responseString, Toast.LENGTH_SHORT).show();
}
});
//另一种启动网络的方式
//创建RequestParams对象
// RequestParams requestParams = new RequestParams();
//将参数和值以键值对的形式放入requestParams中
// requestParams.put("params","{\"classify_id\":70,\"page\":1,\"page_count\":2}");
// //启动
// HttpUtil.get("categorylist",requestParams, new TextHttpResponseHandler() {
// @Override
// public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
// Toast.makeText(MainActivity.this, "failture", Toast.LENGTH_SHORT).show();
// }
//
// @Override
// public void onSuccess(int statusCode, Header[] headers, String responseString) {
// Log.e(TAG, "onSuccess: "+responseString );
// Toast.makeText(MainActivity.this, "success", Toast.LENGTH_SHORT).show();
//
// }
// });
break;
default:
}
}
}
//创建一个公共类
public class HttpUtil {
//将一个网址的不变部分先进行定义,一个传URL时只需要传变的部分
private static final String basicUrl = "http://103.244.59.105:8014/paopaoserver/";
//创建AsyncHttpClient对象
private static AsyncHttpClient client = new AsyncHttpClient();
//创建方法进行申请访问网络,同时在最后调用回调方法
public static void get(String url, RequestParams params, AsyncHttpResponseHandler asyncHttpResponseHandler){
client.get(getAbsulateUrl(url),params,asyncHttpResponseHandler);
}
//创建post方法
public static void post(Context context, String url, HttpEntity entity, String contentType, AsyncHttpResponseHandler responseHandler) {
client.post(context,url,entity,contentType,responseHandler);
}
//此方法用于将网址的不变部分+URL变的部分
private static String getAbsulateUrl(String relativeUrl){
return basicUrl+relativeUrl;
}
}
2.在需要申请网络时,调用post方法
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button showBtn;
private String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bangID();
}
private void bangID() {
showBtn = findViewById(R.id.main_show_btn);
showBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_show_btn:
Intent intent = getIntent();
String basicUrl = intent.getStringExtra("basicUrl");
//创建JSONObject数组
final JSONObject[] jsonObject = {new JSONObject()};
try {
//通过给JSONObject数组的对象赋值,来传递json数据,可以添加多个
jsonObject[0].put("Blower",1);
} catch (JSONException e) {
e.printStackTrace();
}
//创建ByteArrayEntity对象
ByteArrayEntity entity = null;
try {
entity = new ByteArrayEntity(jsonObject[0].toString().getBytes("UTF-8"));
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
HttpUtil.post(MainActivity.this, basicUrl + "control", entity, "application/json", new TextHttpResponseHandler() {
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
}
});
break;
default:
}
}
}