Android 无法使用2+;获取响应;RXJava2但是在POSTMAN中获取响应

Android 无法使用2+;获取响应;RXJava2但是在POSTMAN中获取响应,android,retrofit2,rx-java2,Android,Retrofit2,Rx Java2,我正在尝试从服务器获取JSON响应以进行联网,我正在使用Reformation2和Rxjava2从服务器获取数据。下面是来自服务器的JSON响应 { "status": "Success", "panHolderName": "xxxxxx", "dateOfBirth": "xx-xx-xxxx", "gender": "xxx", &

我正在尝试从服务器获取JSON响应以进行联网,我正在使用Reformation2和Rxjava2从服务器获取数据。下面是来自服务器的JSON响应

{
"status": "Success",
"panHolderName": "xxxxxx",
"dateOfBirth": "xx-xx-xxxx",
"gender": "xxx",
"residence": null,
"occupation": "xxxx",
"address": "xxxxxxx",
"pincode": "xxxxxx"
}
当我在POSTMAN中使用API时,它正确地获取上述响应,但当我使用RXJAva2和改型获取响应时,它仅显示
panHolderName
字段,即使没有显示错误。为什么其他字段数据未显示

下面是我的代码

客户端类

public class RetrofitClient {

private static Retrofit retrofit = null;

public static Retrofit getInstance(){

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(22, TimeUnit.SECONDS)
            .readTimeout(22, TimeUnit.SECONDS)
            .writeTimeout(22, TimeUnit.SECONDS)
            .build();

    if(retrofit == null)
        retrofit = new Retrofit.Builder()
                .baseUrl("http://68.169.58.46:8080/portal/androidIntegrationAPI/")
                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().setLenient().create()))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(okHttpClient)
                .build();

    return retrofit;
  }

}
public interface ApiService {     

             @POST("getPanDetails")
             Observable<PanDetails> getDetails(@Body JsonObject jsonObject);
         }
public class PanDetails {

@SerializedName("status")
@Expose
String status;

@SerializedName("panHolderName")
@Expose
String panHolderName;

@SerializedName("dateOfBirth")
@Expose
String dateOfBirth;

@SerializedName("gender")
@Expose
String gender;

@SerializedName("residence")
@Expose
String residence;

@SerializedName("occupation")
@Expose
String occupation;

@SerializedName("address")
@Expose
String address;

@SerializedName("pincode")
@Expose
String pincode;

public PanDetails(String status, String panHolderName, String dateOfBirth, String gender, String residence,
                  String occupation, String address, String pincode) {
    this.status = status;
    this.panHolderName = panHolderName;
    this.dateOfBirth = dateOfBirth;
    this.gender = gender;
    this.residence = residence;
    this.occupation = occupation;
    this.address = address;
    this.pincode = pincode;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getPanHolderName() {
    return panHolderName;
}

public void setPanHolderName(String panHolderName) {
    this.panHolderName = panHolderName;
}

public String getDateOfBirth() {
    return dateOfBirth;
}

public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getResidence() {
    return residence;
}

public void setResidence(String residence) {
    this.residence = residence;
}

public String getOccupation() {
    return occupation;
}

public void setOccupation(String occupation) {
    this.occupation = occupation;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getPincode() {
    return pincode;
}

public void setPincode(String pincode) {
    this.pincode = pincode;
}
}
  private void sendPan(String str1){

    Retrofit retrofit = RetrofitClient.getInstance();
    ApiService apiService = retrofit.create(ApiService.class);

    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("panNo",str1);

    apiService.getDetails(jsonObject).subscribeOn(Schedulers.io())
                                     .subscribe(new Observer<PanDetails>() {
                                         @Override
                                         public void onSubscribe(Disposable d) {

                                         }

                                         @Override
                                         public void onNext(PanDetails value) {

                                                 prg.dismiss();

                                                 name.setText(value.getPanHolderName());
                                                 Log.d("name",nam);
                                                 mydob.setText(value.getDateOfBirth());
                                                 address.setText(value.getAddress());
                                                 pin.setText(value.getPincode());
                                                 if(value.getGender().equals("Male")){
                                                     gender.setSelection(1);
                                                 }
                                                 else{
                                                     gender.setSelection(2);
                                                 }

                                          
                                         }

                                         @Override
                                         public void onError(final Throwable e) {

                                                   runOnUiThread(new Runnable() {
                                                       @Override
                                                       public void run() {
                                                           prg.dismiss();
                                                           TastyToast.makeText(getApplicationContext(),e.getMessage(),
                                                                   TastyToast.LENGTH_LONG,TastyToast.INFO).show();
                                                       }
                                                   });  


                                         }

                                         @Override
                                         public void onComplete() {

                                         }
                                     });
}
ApiService.class

public class RetrofitClient {

private static Retrofit retrofit = null;

public static Retrofit getInstance(){

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(22, TimeUnit.SECONDS)
            .readTimeout(22, TimeUnit.SECONDS)
            .writeTimeout(22, TimeUnit.SECONDS)
            .build();

    if(retrofit == null)
        retrofit = new Retrofit.Builder()
                .baseUrl("http://68.169.58.46:8080/portal/androidIntegrationAPI/")
                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().setLenient().create()))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(okHttpClient)
                .build();

    return retrofit;
  }

}
public interface ApiService {     

             @POST("getPanDetails")
             Observable<PanDetails> getDetails(@Body JsonObject jsonObject);
         }
public class PanDetails {

@SerializedName("status")
@Expose
String status;

@SerializedName("panHolderName")
@Expose
String panHolderName;

@SerializedName("dateOfBirth")
@Expose
String dateOfBirth;

@SerializedName("gender")
@Expose
String gender;

@SerializedName("residence")
@Expose
String residence;

@SerializedName("occupation")
@Expose
String occupation;

@SerializedName("address")
@Expose
String address;

@SerializedName("pincode")
@Expose
String pincode;

public PanDetails(String status, String panHolderName, String dateOfBirth, String gender, String residence,
                  String occupation, String address, String pincode) {
    this.status = status;
    this.panHolderName = panHolderName;
    this.dateOfBirth = dateOfBirth;
    this.gender = gender;
    this.residence = residence;
    this.occupation = occupation;
    this.address = address;
    this.pincode = pincode;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getPanHolderName() {
    return panHolderName;
}

public void setPanHolderName(String panHolderName) {
    this.panHolderName = panHolderName;
}

public String getDateOfBirth() {
    return dateOfBirth;
}

public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getResidence() {
    return residence;
}

public void setResidence(String residence) {
    this.residence = residence;
}

public String getOccupation() {
    return occupation;
}

public void setOccupation(String occupation) {
    this.occupation = occupation;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getPincode() {
    return pincode;
}

public void setPincode(String pincode) {
    this.pincode = pincode;
}
}
  private void sendPan(String str1){

    Retrofit retrofit = RetrofitClient.getInstance();
    ApiService apiService = retrofit.create(ApiService.class);

    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("panNo",str1);

    apiService.getDetails(jsonObject).subscribeOn(Schedulers.io())
                                     .subscribe(new Observer<PanDetails>() {
                                         @Override
                                         public void onSubscribe(Disposable d) {

                                         }

                                         @Override
                                         public void onNext(PanDetails value) {

                                                 prg.dismiss();

                                                 name.setText(value.getPanHolderName());
                                                 Log.d("name",nam);
                                                 mydob.setText(value.getDateOfBirth());
                                                 address.setText(value.getAddress());
                                                 pin.setText(value.getPincode());
                                                 if(value.getGender().equals("Male")){
                                                     gender.setSelection(1);
                                                 }
                                                 else{
                                                     gender.setSelection(2);
                                                 }

                                          
                                         }

                                         @Override
                                         public void onError(final Throwable e) {

                                                   runOnUiThread(new Runnable() {
                                                       @Override
                                                       public void run() {
                                                           prg.dismiss();
                                                           TastyToast.makeText(getApplicationContext(),e.getMessage(),
                                                                   TastyToast.LENGTH_LONG,TastyToast.INFO).show();
                                                       }
                                                   });  


                                         }

                                         @Override
                                         public void onComplete() {

                                         }
                                     });
}
PersonalInfo.class

public class RetrofitClient {

private static Retrofit retrofit = null;

public static Retrofit getInstance(){

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(22, TimeUnit.SECONDS)
            .readTimeout(22, TimeUnit.SECONDS)
            .writeTimeout(22, TimeUnit.SECONDS)
            .build();

    if(retrofit == null)
        retrofit = new Retrofit.Builder()
                .baseUrl("http://68.169.58.46:8080/portal/androidIntegrationAPI/")
                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().setLenient().create()))
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .client(okHttpClient)
                .build();

    return retrofit;
  }

}
public interface ApiService {     

             @POST("getPanDetails")
             Observable<PanDetails> getDetails(@Body JsonObject jsonObject);
         }
public class PanDetails {

@SerializedName("status")
@Expose
String status;

@SerializedName("panHolderName")
@Expose
String panHolderName;

@SerializedName("dateOfBirth")
@Expose
String dateOfBirth;

@SerializedName("gender")
@Expose
String gender;

@SerializedName("residence")
@Expose
String residence;

@SerializedName("occupation")
@Expose
String occupation;

@SerializedName("address")
@Expose
String address;

@SerializedName("pincode")
@Expose
String pincode;

public PanDetails(String status, String panHolderName, String dateOfBirth, String gender, String residence,
                  String occupation, String address, String pincode) {
    this.status = status;
    this.panHolderName = panHolderName;
    this.dateOfBirth = dateOfBirth;
    this.gender = gender;
    this.residence = residence;
    this.occupation = occupation;
    this.address = address;
    this.pincode = pincode;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getPanHolderName() {
    return panHolderName;
}

public void setPanHolderName(String panHolderName) {
    this.panHolderName = panHolderName;
}

public String getDateOfBirth() {
    return dateOfBirth;
}

public void setDateOfBirth(String dateOfBirth) {
    this.dateOfBirth = dateOfBirth;
}

public String getGender() {
    return gender;
}

public void setGender(String gender) {
    this.gender = gender;
}

public String getResidence() {
    return residence;
}

public void setResidence(String residence) {
    this.residence = residence;
}

public String getOccupation() {
    return occupation;
}

public void setOccupation(String occupation) {
    this.occupation = occupation;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

public String getPincode() {
    return pincode;
}

public void setPincode(String pincode) {
    this.pincode = pincode;
}
}
  private void sendPan(String str1){

    Retrofit retrofit = RetrofitClient.getInstance();
    ApiService apiService = retrofit.create(ApiService.class);

    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty("panNo",str1);

    apiService.getDetails(jsonObject).subscribeOn(Schedulers.io())
                                     .subscribe(new Observer<PanDetails>() {
                                         @Override
                                         public void onSubscribe(Disposable d) {

                                         }

                                         @Override
                                         public void onNext(PanDetails value) {

                                                 prg.dismiss();

                                                 name.setText(value.getPanHolderName());
                                                 Log.d("name",nam);
                                                 mydob.setText(value.getDateOfBirth());
                                                 address.setText(value.getAddress());
                                                 pin.setText(value.getPincode());
                                                 if(value.getGender().equals("Male")){
                                                     gender.setSelection(1);
                                                 }
                                                 else{
                                                     gender.setSelection(2);
                                                 }

                                          
                                         }

                                         @Override
                                         public void onError(final Throwable e) {

                                                   runOnUiThread(new Runnable() {
                                                       @Override
                                                       public void run() {
                                                           prg.dismiss();
                                                           TastyToast.makeText(getApplicationContext(),e.getMessage(),
                                                                   TastyToast.LENGTH_LONG,TastyToast.INFO).show();
                                                       }
                                                   });  


                                         }

                                         @Override
                                         public void onComplete() {

                                         }
                                     });
}
private void sendPan(字符串str1){
Refundation-Refundation=RefundationClient.getInstance();
ApiService ApiService=reformation.create(ApiService.class);
JsonObject JsonObject=新的JsonObject();
jsonObject.addProperty(“panNo”,str1);
apiService.getDetails(jsonObject).subscribeOn(Schedulers.io())
.订阅(新观察员){
@凌驾
认购的公共无效(一次性d){
}
@凌驾
public void onNext(PanDetails值){
prg.discouse();
name.setText(value.getPanHolderName());
Log.d(“名称”,不结盟运动);
mydob.setText(value.getDateOfBirth());
address.setText(value.getAddress());
pin.setText(value.getPincode());
if(value.getGender()等于(“男性”)){
性别.选举(1);
}
否则{
性别.选举(2);
}
}
@凌驾
公共作废申报人(最终可丢弃e){
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
prg.discouse();
TastyToast.makeText(getApplicationContext(),e.getMessage(),
TastyToast.LENGTH_LONG,TastyToast.INFO).show();
}
});  
}
@凌驾
未完成的公共空间(){
}
});
}
有人,请让我知道我做错了什么。任何帮助都将不胜感激


谢谢

之后会抛出错误

name.setText(value.getPanHolderName());
这就是它不打印其他值的原因。在设置UI数据时,需要在主线程上进行观察

外接程序build.gradle

implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
implementation "io.reactivex.rxjava2:rxjava:2.1.1"


这是一个错误

name.setText(value.getPanHolderName());
这就是它不打印其他值的原因。在设置UI数据时,需要在主线程上进行观察

外接程序build.gradle

implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
implementation "io.reactivex.rxjava2:rxjava:2.1.1"


问题是什么?除了
panHolderName
之外,我无法获取其他字段。请检查类似于postman字符串的字段类型,在您的pojo类中使用int或boolean并进行交叉检查如何检查响应字段的数据类型。当我尝试记录
panHolderName
时,其显示如下内容
11056-11056/com.app.esfita W/RenderThread:type=1400 audit(0.0:51):avc:denied{write}for name=“property\u service”dev=“tmpfs”ino=255 scontext=u:r:untrusted\u app:s0:c134、c256、c512、c768 tcontext=u:object\u r:property\u socket:s0 tclass=sock\u file permissive=0
有什么问题吗?除了
panHolderName
我无法获取其他字段。请检查类似postman字符串中的字段类型,在您的pojo类中使用int或boolean并进行交叉检查如何检查响应字段的数据类型。当我尝试记录
panHolderName
时,其显示如下内容
11056-11056/com.app.esfita W/RenderThread:type=1400 audit(0.0:51):avc:denied{write}for name=“property\u service”dev=“tmpfs”ino=255 scontext=u:r:untrusted\u app:s0:c134、c256、c512、c768 tcontext=u:object\r:property\u socket:s0 tclass=sock\u file permissive=0