package bw.com.ak.network;
import android.content.Context;
import android.util.Log;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUrlUtils {
//请求获取网络请求
public static String getHttpCon(Context mContext,String mPath,String mRam){
String messages = "";
try {
URL murl = new URL(mPath);
Log.i("shop", "doInBackground: " + mPath);
HttpURLConnection connection = (HttpURLConnection) murl.openConnection();
//设置请求发送
connection.setRequestMethod(mRam);
//请求超时
connection.setConnectTimeout(5 * 1000);
connection.setReadTimeout(5 * 1000);
//数据流处理
if (connection.getResponseCode() == 200) {
//获取输入流
InputStream inputStream = connection.getInputStream();
//读取输入流
byte[] b = new byte[1024 * 512]; //定义一个byte数组读取输入流
ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定义缓存流来保存输入流的数据
int len = 0;
while ((len = inputStream.read(b)) > -1) { //每次读的len>-1 说明是是有数据的
baos.write(b, 0, len); //三个参数 输入流byte数组 读取起始位置 读取终止位置
}
messages = baos.toString();
inputStream.close();
connection.disconnect();
}
} catch(Exception e){
e.printStackTrace();
}
return messages;
}
}
调用网络请求方法
package bw.com.ak.view;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import bw.com.ak.R;
import bw.com.ak.adapter.ShopAdapte;
import bw.com.ak.adapter.ShopBean;
import bw.com.ak.network.HttpUrlUtils;
import bw.com.ak.network.NetWorkUtils;
import bw.com.ak.view.xlistview.XListView;
public class MainFragment extends Fragment {
private XListView listView;
private ShopAdapte myAdapte;
private View mView;
private String mnr;
public static Fragment getinstance(String title){
//创建Fragment1
MainFragment fragment1 = new MainFragment();
//创建bundle
Bundle bundle = new Bundle();
//添加值
bundle.putString("title",title);
//把值添加到Arguments中
fragment1.setArguments(bundle);
return fragment1;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
///获取Arguments
Bundle arguments = getArguments();
//获取值
String title = arguments.getString("title");
//创建textview
TextView textView = new TextView(getActivity());
//设置值
textView.setText("1608c"+title);
//获取view绑定数据
if(mView==null){
mView= inflater.inflate(R.layout.mainfr_layout, container, false);
listView = mView.findViewById(R.id.mf_xlv);
//获取数据
switch (title){
case "头条":
mnr="tt";
getDate();
break;
case "社会":
mnr="shehui";
getDate();
break;
case "国内":
mnr="gn";
getDate();
break;
}
listView.setAdapter(myAdapte);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(getActivity(), DilActivity.class);
startActivity(intent);
}
});
}
return mView;
}
//获取数据
private void getDate(){
if(NetWorkUtils.getNet(getActivity())) {
new MyAsyn().execute();
// String mPath="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
// myAdapte = new ShopAdapte(getActivity());
//new MyTask(getActivity(),mPath,"GET").execute();
Toast.makeText(getActivity(),"网络已连接",Toast.LENGTH_LONG).show();
}else {
Toast.makeText(getActivity(),"亲!请检查网络",Toast.LENGTH_LONG).show();
}
}
//获取数据
class MyAsyn extends AsyncTask<Integer,Integer,String> {
public String mPath="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri="+mnr+"";
//耗时的操作
@Override
protected String doInBackground(Integer... integers) {
return HttpUrlUtils.getHttpCon(getActivity(),mPath,"GET");
}
//当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s != null) {
Gson gson = new Gson();
ShopBean focusBean = gson.fromJson(s,ShopBean.class);
ShopBean.ResultBean resultBean ;
resultBean = focusBean.getResult();
if (resultBean != null) {
myAdapte = new ShopAdapte(getActivity(),resultBean);
listView.setAdapter(myAdapte);
}
}
}
}
}