Retrofit获取静态数据

第一步:在Module文件中添加1.retrofit的依赖和2.gson解析的依赖;

点击File —— Project Structure —— Dependencies依赖,选择右边的加号进行添加

implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'

第二步:在.xml布局文件中添加输入框,按钮和文本框;(目前使用线性布局方式)

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <EditText
        android:id="@+id/et01"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#5F9EA0"
        android:hint="请输入" />
    <Button
        android:id="@+id/btn01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="提交"
        android:layout_marginBottom="100dp"
        android:textColor="#4B0082" />
    <TextView
        android:id="@+id/tv01"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="hello"/>

</LinearLayout>

第三步:写接口文件;

package com.didu.myapplication;

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

public interface Inter {
    @GET("queryid")
    Call<Cooks> getStr(@Query("key")String cookNo, @Query("id")String idNo);

}

第四步:在.java文件写关联控件和具体程序;

1.https://www.juhe.cn/网址接口数据网址;

2.http://www.bejson.com/json2javapojo/new/在线JSON字符串转Java实体类(将网址输入到浏览器,将key值替换成自己的key);

3.将Class:改成自己文件名Cooks(首字母大写),将Package:改成自己的网址,生成JavaBean并下载代码,将com代码复制粘贴到java文件夹下即可;

4.http://www.bejson.com/在线JSON校验格式化;

package com.didu.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.io.IOException;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MainActivity extends AppCompatActivity {

    Call<Cooks> call;
    EditText et02;
    Button btn02;
    TextView tv02;

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://apis.juhe.cn/cook/")//设置网络请求URL
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    Inter inter01 = retrofit.create(Inter.class);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et02 = findViewById(R.id.et01);
        btn02 = findViewById(R.id.btn01);
        tv02 = findViewById(R.id.tv01);

        btn02.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 call = inter01.getStr("fdc78477f3279c0f5a54da89c5b1ccdd",et02.getText().toString());
                 call.enqueue(new Callback<Cooks>() {
                     @Override
                     public void onResponse(Call<Cooks> call, Response<Cooks> response) {
                         tv02.setText(response.body().getReason());
                     }

                     @Override
                     public void onFailure(Call<Cooks> call, Throwable t) {

                     }
                 });
            }
        });



    }
}

第五步:清单文件中添加联网代码

<uses-permission android:name="android.permission.INTERNET" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

带刀走江湖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值