使用okhttp来调用百度提供的频道新闻API(http://apistore.baidu.com/apiworks/servicedetail/688.html)
okhttp的添加源
compile ‘com.squareup.okhttp3:okhttp:3.2.0‘
String httpUrl = String httpArg = String requestString=requestString=httpUrl++httpArgrequest(requestString)
public void request(String requestString) { OkHttpClient mOkHttpClient=new OkHttpClient(); Request.Builder requestBuilder = new Request.Builder().url(requestString).addHeader("apikey","592e46b62cfe201c68bf7d9f18db11ee"); //可以省略,默认是GET请求 requestBuilder.method("GET",null); Request request = requestBuilder.build(); Call mcall= mOkHttpClient.newCall(request); mcall.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { System.out.println("失败"); getActivity().runOnUiThread(new Runnable() { @Override public void run() { swipeRefreshLayout.setRefreshing(false); } }); } @Override public void onResponse(Call call, Response response) throws IOException { if (null != response.cacheResponse()) { String str = response.cacheResponse().toString(); Log.i("wangshu", "cache---" + str); } else { String string=response.body().string().toString(); System.out.println(string); try { System.out.println(1); JSONObject jsonObject=new JSONObject(string); JSONArray jsonArray=jsonObject.getJSONObject("showapi_res_body").getJSONObject("pagebean").getJSONArray("contentlist"); for (int i=0;i<=9;i++){ XinWenBean xinWenBean=new XinWenBean(); xinWenBean.setTitle(jsonArray.getJSONObject(i).getString("title")); xinWenBeanList.add(xinWenBean); } } catch (JSONException e) { e.printStackTrace(); } String str = response.networkResponse().toString(); Log.i("wangshu", "network---" + str); } getActivity().runOnUiThread(new Runnable() { @Override public void run() { swipeRefreshLayout.setRefreshing(false); recyclerView.setAdapter(new XinWenRecyclerViewAdapter(getActivity(),xinWenBeanList)); } }); } }); }
时间: 2024-11-09 01:46:58