频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android开发-Retrofit-AndroidStudio(一)百度首页解析
2016-11-15 09:57:30         来源:iwanghang  
收藏   我要投稿

有能力的同学可以直接去看 Retrofit官方Demo:

https://github.com/square/retrofit

我这边简单使用一下,以百度首页解析作为开篇:

导入jar包:

\

有网络和无网络的效果图:

\

\

Service.java:

 

package com.iwanghang.retrofitdemo;

import retrofit2.Call;
import retrofit2.http.GET;

public interface Service {
    @GET("/") // 因为我们是解析首页,也就是根目录,所以这边写"/"
    Call getBaidu();
}
MainActivity.java:

 

 

package com.iwanghang.retrofitdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Converter;
import retrofit2.Response;
import retrofit2.Retrofit;

/**
 * Retrofit官方Demo
 * https://github.com/square/retrofit
 */
public class MainActivity extends AppCompatActivity implements Callback {

    TextView main_text;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        /**
         * 实例化Retrofit
         * Converter 转换器 可以转换任意数据类型
         */
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://www.baidu.com")
                .addConverterFactory(
                        new Converter.Factory() {
                            @Override
                            public Converter responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
                                //return super.responseBodyConverter(type, annotations, retrofit);
                                return new Converter() {
                                    @Override
                                    public String convert(ResponseBody value) throws IOException {
                                        //return null;
                                        return value.string();
                                    }
                                };
                            }
                        }
                ).build();
        Service service = retrofit.create(Service.class); // 实例化服务
        Call call = service.getBaidu(); // 创建请求
        call.enqueue(this); // 异步请求

        main_text = (TextView) findViewById(R.id.main_text);

    }

    // 异步请求 成功
    @Override
    public void onResponse(Call call, Response response) {
        Toast.makeText(this, "请求成功", Toast.LENGTH_SHORT).show();
        main_text.setText(response.body());
    }

    // 异步请求 失败
    @Override
    public void onFailure(Call call, Throwable t) {
        Toast.makeText(this, "请求失败"+call.request().url(), Toast.LENGTH_SHORT).show();
        t.printStackTrace();
    }
}
另外不用忘记在AndroidManifest.xml加网络权限:

给默认activity_main.xml的textView加id。

点击复制链接 与好友分享!回本站首页
上一篇:Android服务Service使用总结
下一篇:andriod编程 仿购物车功能实现
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站