Как получить XML ответ с помощью Retrofit в Android - PullRequest
0 голосов
/ 01 октября 2018

Я хочу проанализировать XML-ответ с помощью Retrofit, но я получил нулевой ответ и создал класс модели для каждого тега XML.я хочу получить всю распечатку ответа в logcat точно так же, как распечатку ответа json с помощью new Gson().toJson(response.body) ответа от веб-службы -

<?xml version="1.0"?>
<string xmlns="http://tempuri.org/">
  <NewDataSet>
    <Table>
      <g_Vill>700</g_Vill>
      <g_Code>47751</g_Code>
      <g_adhaar_card_no>0</g_adhaar_card_no>
      <G_Mobile_Number>9616265075</G_Mobile_Number>
      <g_unique_cd>500109460194</g_unique_cd>
      <G_Name>Nirmala Devi</G_Name>
      <F_Name>Jokhan</F_Name>
      <S_Name>COOP. CANE DEVP. SOC. GHOSI. </S_Name>
      <C_Name>Karkhiya</C_Name>
      <V_Name>Roshangunj</V_Name>
      <bank>Kashi Gomati Bank Ltd</bank>
      <MD_Mode>TROLLY-GATE</MD_Mode>
      <g_bquota>149.56600</g_bquota>
      <g_TArea>0.09700</g_TArea>
      <g_accnt>111552010001742</g_accnt>
      <g_T_Bond>48.06800</g_T_Bond>
      <AvgUpaj>0</AvgUpaj>
      <crushyear>2017-2018</crushyear>
      <Branch>ChalakpurAzamgarh</Branch>
    </Table>
  </NewDataSet>
</string>

я создал класс этой модели с помощью XML для класса JavaPojo

и я получаю нулевой ответ

EndPointInterface git = ApiClient.getClient().create(EndPointInterface.class);
            Call<GrowerDetailsResponse> call = git.GrowerDetails("700","47751","1819","8");
            call.enqueue(new Callback<GrowerDetailsResponse>() {

                @Override
                public void onResponse(Call<GrowerDetailsResponse> call, retrofit2.Response<GrowerDetailsResponse> response) {
                    Log.e("FundRequest", "hello response : " + response.body().getNewDataSet().getTable().getAvgUpaj());
                }

                @Override
                public void onFailure(Call<GrowerDetailsResponse> call, Throwable t) {
                    Log.e("response", "error "+t.getMessage());

                }
            });

1 Ответ

0 голосов
/ 01 октября 2018

Вам необходимо добавить метод Factory Factory следующим образом:

Retrofit retrofit = new Retrofit.Builder()  
                  .baseUrl(API_BASE_URL)
    .client(new OkHttpClient())
    .addConverterFactory(SimpleXmlConverterFactory.create())
    .build();

Также необходимо добавить эти строки в gradle

 compile 'com.squareup.retrofit2:converter-simplexml:2.3.0'

Для ознакомительного посещения: https://futurestud.io/tutorials/retrofit-how-to-integrate-xml-converter

...