如何解决Spring boot web service Android java localhost问题
我的 Android Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zaurfarrukhzada.htmlparsingapp">
<uses-permission android:name="android.permission.INTERNET" />//This is my internet permission
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.HtmlParsingApp">
<activity android:name=".View.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的模型
public class City implements Serializable {//this is my model city
@Serializedname("id")
@Expose
private Integer id;
@Serializedname("name")
@Expose
private String name;
@Serializedname("countryCode")
@Expose
private String countryCode;
@Serializedname("district")
@Expose
private String district;
@Serializedname("population")
@Expose
private Integer population;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getdistrict() {
return district;
}
public void setdistrict(String district) {
this.district = district;
}
public Integer getPopulation() {
return population;
}
public void setPopulation(Integer population) {
this.population = population;
}
}
My Rest Api 接口
public interface RestApi
{
@GET("cities")
Call<List<City>> getAllCities(); //My models request the spring boot web service
}
我的经理全班
public class ManagerAll extends BaseManager
{
private static ManagerAll ourInstance = new ManagerAll();
public static synchronized ManagerAll getInstance(){
return ourInstance;
}
public Call<List<City>> getAllCities(){
Call<List<City>> allCities = getRestClientCities().getAllCities();//Call restapi
return allCities;
}
}
My Restapiclient Class //这是Restapiclient连接改造和okhhtpi
public class Restapiclient {
private RestApi mGetResApi;
public Restapiclient(String restApiServiceUrl){
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.readTimeout(30,TimeUnit.SECONDS)
.writeTimeout(30,TimeUnit.SECONDS)
.connectTimeout(3,TimeUnit.SECONDS);
OkHttpClient okHttpClient = builder.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(restApiServiceUrl)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
mGetResApi = retrofit.create(RestApi.class);
}
public RestApi getRestApi(){
return mGetResApi;
}
}
My BaseManager Class 这是basemanager 向restapiclient 发送数据
public class BaseManager {
protected RestApi getRestClientCities(){
Restapiclient restapiclient = new Restapiclient(BaseUrl.BASE_URL);
return restapiclient.getRestApi();
}
}
My BaseUrl Class // 这是基本网址
public class BaseUrl {
public static final String BASE_URL="http://192.168.x.x:8080/";//this my spring boot webservice localhost
}
我的 MainActivity 类
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestCities();
}
public void requestCities(){
Call<List<City>> call = ManagerAll.getInstance().getAllCities();
call.enqueue(new Callback<List<City>>() {
@Override
public void onResponse(Call<List<City>> call,Response<List<City>> response) {
Log.i("city",response.body().toString());
}
@Override
public void onFailure(Call<List<City>> call,Throwable t) {
Log.i("log",t.getLocalizedMessage());
Toast.makeText(MainActivity.this,t.getLocalizedMessage(),Toast.LENGTH_LONG).show();
}
});
}
}
我的 json 城市
http://localhost:8080/cities ///Spring boot data in web service
{
{
"id": 1,"name": "Kabul","countryCode": "AFG","district": "Kabol","population": 1780000
},{
"id": 2,"name": "Qandahar","district": "Qandahar","population": 237500
},{
"id": 3,"name": "Herat","district": "Herat","population": 186800
},{
"id": 4,"name": "Mazar-e-Sharif","district": "Balkh","population": 127800
},{
"id": 5,"name": "Amsterdam","countryCode": "NLD","district": "Noord-Holland","population": 731200
}
}
我的问题是我想得到我用spring boot写的web服务,但是localhost是android手机的localhost和post,和电脑不一样。我能做什么? 请帮助我,谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。