2016-01-22 105 views
0

我使用改造图书馆在我的应用程序网络requests.My代码中使用改造图书馆空响应下面给出2. Message.java入门android系统

public class Message { 

    String user; 
    String message; 
    //String roomID; 

    public String getUser() { 
     return user; 
    } 

    public void setUser(String user) { 
     this.user = user; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    @Override 
    public String toString() { 
     return(message); 
    } 
} 

3.Messages.java

public class Messages { 
    List<Message> items; 
} 

4.MainActivity.java

public class MainActivity extends AppCompatActivity { 
String roomID = "548b737c0eadfb00eb93891bb28242e5"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://pms.vebific.com:81/chat/index/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    MyAPI myAPI = retrofit.create(MyAPI.class); 
    Call<Messages> call = myAPI.loadMessages(roomID); 

    call.enqueue(new Callback<Messages>() { 
     @Override 
     public void onResponse(Response<Messages> response, Retrofit retrofit) { 
      Log.e("Response", String.valueOf(response.body())); 
     } 

     @Override 
     public void onFailure(Throwable t) { 
      Log.e("Error","---------------"); 
     } 
    }); 

} 

}

URL所使用的是:

http://pms.vebific.com:81/chat/index/548b737c0eadfb00eb93891bb28242e5 

预期的响应:

[ 
    { 
"_id": { 
"$id": "56963d96da036c6c05815e63" 
}, 
"room_id": "548b737c0eadfb00eb93891bb28242e5", 
"user": "Jeevan Verma", 
"id": 479, 
"message": "\\uD83D\\uDC30", 
"date": 1481587559734, 
"status": "sent" 
}, 
{ 
"_id": { 
"$id": "56963d8cda036c6c05815e62" 
}, 
"room_id": "548b737c0eadfb00eb93891bb28242e5", 
"user": "Jeevan Verma", 
"id": 479, 
"message": "\\uD83D\\uDE0A", 
"date": 1481587559734, 
"status": "sent" 
}, 
{ 
"_id": { 
"$id": "56964454da036c6c05815e64" 
}, 
"room_id": "548b737c0eadfb00eb93891bb28242e5", 
"user": "Jeevan Verma", 
"id": 479, 
"message": "\\uD83D\\uDC2D", 
"date": 1481589296434, 
"status": "sent" 
} 
] 

当我在浏览器中使用它时,我收到了回复。

在使用Retrofit时,我收到空响应。我可能会错过某些东西,我想。请帮我解决它。请告诉我如何使用Retrofit阅读回复。

+0

你的意思'response'为空? –

+0

@bigdestroyer,24599-24599/com.example.deepakr.retrofitdemo E/Response:null –

+0

尝试从您的基本URL中删除最后一个斜杠('/')。也许这可以帮助你http://stackoverflow.com/questions/33757619/retrofit-2-null-response-body?rq=1 –

回答

2

更改您的API定义返回Call<List<Message>>而不是Call<Messages>

Call<List<Message>>loadMessages(@Path("roomID") String roomID); 

MyAPI myAPI = retrofit.create(MyAPI.class); 
    Call<List<Message>> call = myAPI.loadMessages(roomID); 

    call.enqueue(new Callback<List<Message>>() { 
     @Override 
     public void onResponse(Response<List<Message>> response, Retrofit retrofit) { 
      Log.e("Response", String.valueOf(response.body())); 
     } 

     @Override 
     public void onFailure(Throwable t) { 
      Log.e("Error","---------------"); 
     } 
    });