编写不易,如有转载,请声明出处:http://blog.youkuaiyun.com/zxc514257857/article/details/60501821
get方式异步请求数据
String url = Url.IPA+ "/" + Url.IPB;
Request request = new Request.Builder()
.url(url)
.build();
OkHttpClient client = new OkHttpClient();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Log.i(TAG, "网络请求失败");
}
@Override
public void onResponse(Response response) throws IOException {
if (response.isSuccessful()) {
String jsonString = response.body().string();
Gson gson = new Gson();
mMarketList = gson.fromJson(jsonString,
new TypeToken<List<MarketBean>>() {
}.getType());
runOnUiThread(new Runnable() {
@Override
public void run() {
mListView.setAdapter(mMarketListAdapter);
}
});
}
}
});
-------------------------------------------------------
//请求到数据后在ListVIew里面显示
private MarketListAdapter mMarketListAdapter = new MarketListAdapter();
class MarketListAdapter extends BaseAdapter {
@Override
public int getCount() {
if (mMarketList != null) {
return mMarketList.size();
}
return 0;
}
@Override
public Object getItem(int position) {
if (mMarketList != null) {
return mMarketList.get(position);
}
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(SecondActivity.this, R.layout.id_item, null);
holder = new ViewHolder(convertView);
holder.mTextView = (TextView) convertView.findViewById(textView);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (mMarketList != null && holder != null) {
String mName = mMarketList.get(position).name;
String mId = mMarketList.get(position).id;
holder.mTextView.setText(name + ":" + id);
}
return convertView;
}
class ViewHolder {
TextView mTextView;
}
}
post方式同步提交表单数据(键值对数据)
String url = Url.IPA+ "/" + Url.IPB;
RequestBody formBody = new FormEncodingBuilder()
.add("id", mId)
.add("name", mName) .
.build();
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
try {
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
Log.i("success",response.body().string());
} else {
throw new IOException("Unexpected code " + response);
}
} catch (IOException e) {
e.printStackTrace();
}
注意
- 进行网络访问前一定要先添加网络访问权限
- 在进行数据请求或数据提交时先看清接口文档中给的Url,在浏览器上看一下网址请求出来的Json数据是什么格式的,带callBack的要用字符串的形式截取掉callBack{}然后再进行请求
- 如果是请求数据,需要创建Bean类,可以通过GsonFormat插件进行快速创建,并可以通过导入Gson库进行快速解析数据
- 如果使用Okhttp这个网络请求工具采用jar包的形式的话,需要导入两个jar包,除了Okhttp.jar之外,还要导入OkIo.jar
----------因本人才疏学浅,如博客或Demo中有错误的地方请大家随意指出,与大家一起讨论,共同进步,谢谢!----------