第一步:在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" />