自备

本文详细介绍了一个基于Java的HTTP请求处理方法,包括GET请求的发送、响应数据的读取及JSON数据解析过程。通过具体代码示例,展示了如何从网络获取数据并使用Gson库进行JSON对象转换,同时介绍了在Android环境中如何实现异步数据加载和UI更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



> **Http**

public class Http {

    public  static String getnet(String strurl){
        try {
            URL url = new URL(strurl);
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            int code = connection.getResponseCode();
            if (code==200){
                InputStream stream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "utf-8"));
                StringBuilder builder = new StringBuilder();
                String str="";
                while ((str=reader.readLine())!=null){
                    builder.append(str);
                }
                return  builder.toString();
            }
            connection.disconnect();;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
``

**MainActivite**
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewpager = findViewById(R.id.viewpager);
        radiogroup = findViewById(R.id.radiogroup);

        radiogroup.check(radiogroup.getChildAt(0).getId());
        list = new ArrayList<Fragment>();
        Fraglistvew fraglistvew = new Fraglistvew();
        FragGridview fraggridview = new FragGridview();
        list.add(fraglistvew);
        list.add(fraggridview);

        viewpager.setAdapter( new MyFragMentAdapter(getSupportFragmentManager(),list));

           viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
               @Override
               public void onPageScrolled(int i, float v, int i1) {
                   //按钮跟着页面走
                   radiogroup.check(radiogroup.getChildAt(i).getId());
               }
radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId){
                case R.id.button1:
                     viewpager.setCurrentItem(0);
                case R.id.button2:
                    viewpager.setCurrentItem(1);
            }
        }
    });
**FragListview**
 public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fraglistview, null);
        listview = view.findViewById(R.id.listview);

        new Thread(){
            @Override
            public void run() {
                super.run();
                String getnet = Http.getnet("https://api.apiopen.top/musicRankings");
                Gson gson = new Gson();
                JsonData data = gson.fromJson(getnet, JsonData.class);
                list = data.getResult();
                Message message = new Message();
                message.what=0;
                message.obj= list;
                handler.sendMessage(message);
            }
        }.start();
        return  view;
    }
     @SuppressLint("HandlerLeak")
     Handler handler = new Handler(){
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
             switch (msg.what){
                 case 0:
                 List<JsonData.ResultBean> list=( List<JsonData.ResultBean>) msg.obj;
                 MyAdapter adapter = new MyAdapter(getActivity(),list);
               listview.setAdapter(adapter);

                 break;
             }
         }
**Adapter**
@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        holder = new Holder();
       if (convertView==null){
           convertView = View.inflate(context, R.layout.list, null);
           holder.img = convertView.findViewById(R.id.img);
           holder.name = convertView.findViewById(R.id.name);
           convertView.setTag(holder);
       }
       else{
           holder = (Holder) convertView.getTag();
       }
       holder.name.setText(list.get(position).getName());
        ImageLoader.getInstance().displayImage(list.get(position).getPic_s192(),holder.img);
        return convertView;
    }
    class  Holder{
        public TextView name;
        ImageView img;
    }
}
**App**
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        DisplayImageOptions Options = new DisplayImageOptions.Builder().build();
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(Options).build();
        ImageLoader imageLoader = ImageLoader.getInstance();
        imageLoader.init(build);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值