Привет, я новичок в программировании Android. Я просмотрел несколько ссылок о том, как анализировать XML-ответ, используя модификацию, и я попробовал использовать XML ниже, как показано.
Есть ли какие-либо необходимые изменения, которые я должен сделать в POJO?учебный класс.но я получаю исключение NullPointer в Logcat.когда я пытаюсь прочитать ответ.
Может кто-нибудь, пожалуйста, посмотрите на него и помогите мне.
Это мой XML-ответ для API входа в систему.
[
Вот мой код MainActivity.Кто-нибудь может подсказать, где я ошибаюсь.
RequestBody requestBody = RequestBody.create(MediaType.parse("text/xml"), strRequestBody);
Call<LoginResponseEnvelope> call = RetrofitGenerator.getProductInterfaceApi().Login(requestBody);
call.enqueue(new Callback<LoginResponseEnvelope>() {
@Override
public void onResponse(Call<LoginResponseEnvelope> call, Response<LoginResponseEnvelope> response) {
progressbar.setVisibility(View.GONE);
if (response != null) {
try {
Log.d("LoginResponse", "success response :" + response.body());
LoginResponseEnvelope loginResponseEnvelope = response.body();
} catch (Exception e) {
e.printStackTrace();
}
/* if (loginResponseEnvelope != null) {
Log.d("LoginResponse", "success loginResponseEnvelope :" + loginResponseEnvelope.toString());
String status = loginResponseEnvelope.getBody().getLoginResponseData().getLoginResult().getLoginInfo().toString();
Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
startActivity(intent);
}*/
}
/*if (loginResponseEnvelope!=null){
}*/
}
@Override
public void onFailure(Call<LoginResponseEnvelope> call, Throwable t) {
progressbar.setVisibility(View.GONE);
Log.d("LoginResponse", "failure response :" + t.getMessage());
}
});
это мой модифицированный класс POJO для ответа XML.
public class LoginResponseEnvelope {
@Element(name = "Body", required = false)
private LoginResponseBody body;
public LoginResponseBody getBody() {
return body;
}
public void setBody(LoginResponseBody body) {
this.body = body;
}
@Override
public String toString() {
return "LoginResponseEnvelope{" +
"body=" + body +
'}';
}
@Root(name = "Body", strict = false)
public class LoginResponseBody {
@Element(name = "LoginResponse", required = false)
private LoginResponseData loginResponseData;
public LoginResponseData getLoginResponseData() {
return loginResponseData;
}
public void setLoginResponseData(LoginResponseData loginResponseData) {
this.loginResponseData = loginResponseData;
}
@Root(name = "LoginResponse", strict = false)
@Namespace(reference = "http://tempuri.org/")
public class LoginResponseData {
@Element(name = "LoginResult", required = false)
private LoginResult loginResult;
public LoginResult getLoginResult() {
return loginResult;
}
public void setLoginResult(LoginResult loginResult) {
this.loginResult = loginResult;
}
@Root(name = "LoginResult", strict = false)
public class LoginResult {
@Element(name = "Result", required = false)
private LoginInfo loginInfo;
public LoginInfo getLoginInfo() {
return loginInfo;
}
public void setLoginInfo(LoginInfo loginInfo) {
this.loginInfo = loginInfo;
}
@Root(name = "Result", strict = false)
@Namespace(reference = "")
public class LoginInfo {
@Element(name = "Success", required = false)
private Success success;
public Success getSuccess() {
return success;
}
public void setSuccess(Success success) {
this.success = success;
}
@Root(name = "Success", strict = false)
public class Success {
@ElementList(name = "CompanyDetails", inline = true)
private List<Company> companyDetails;
public List<Company> getCompanyDetails() {
return companyDetails;
}
public void setCompanyDetails(List<Company> companyDetails) {
this.companyDetails = companyDetails;
}
@Root(name = "CompanyDetails", strict = false)
public class Company {
@Element(name = "Id", required = false)
private String id;
@Element(name = "Name", required = false)
private String Name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
}
}
}
}
}
}
}