微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring boot web service Android java localhost问题

如何解决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 举报,一经查实,本站将立刻删除。