Ich habe einen Server mit Mongo, Express- und Knoten Ich versuche, Benutzerdaten von Benutzername zu erhalten hier holen.Kann nicht Retrofit 2 Antwort Körper
Hier ist mein Code:
Hauptaktivität:
@BindView(R.id.btnTest)
Button btnTest;
@BindView(R.id.tvTest)
TextView tvTest;
@OnClick(R.id.btnTest) void changeText(){
GitHubService gitHubService = GitHubService.retrofit.create(GitHubService.class);
final Call<User> call =
gitHubService.getUser("dolev");
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
Toast.makeText(MainActivity.this,"This: " + response.body().getName(), Toast.LENGTH_SHORT).show();
tvTest.setText("response success," + response.body().toString());
}
@Override
public void onFailure(Call<User> call, Throwable t) {
tvTest.setText("Something went wrong: " + t.getMessage());
}
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
}
@Override
public void onResponse(Call<User> call, Response<User> response) {
int code = response.code();
if (code == 200) {
User user = response.body();
Log.v("FETCH", response.body().getEmail());
Toast.makeText(this, "Got the user: " + user.getName(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Did not work: " + String.valueOf(code), Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Toast.makeText(this, "Nope", Toast.LENGTH_LONG).show();
}
GitHubService:
public interface GitHubService {
@GET("users/name/{username}")
Call<User> getUser(@Path("username") String username);
@GET("users}")
Call<List<User>> getAllUsers();
public static final Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Global.API)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
Benutzerklasse:
package com.noy.photobomb.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Generated;
@Generated("org.jsonschema2pojo")
public class User {
@SerializedName("_id")
@Expose
private String id;
@SerializedName("isBanned")
@Expose
private Boolean isBanned;
@SerializedName("users_followers")
@Expose
private List<Object> usersFollowers = new ArrayList<Object>();
@SerializedName("__v")
@Expose
private Integer v;
@SerializedName("followers")
@Expose
private List<Object> followers = new ArrayList<Object>();
@SerializedName("groups")
@Expose
private List<Object> groups = new ArrayList<Object>();
@SerializedName("phoneNumber")
@Expose
private String phoneNumber;
@SerializedName("name")
@Expose
private String name;
@SerializedName("email")
@Expose
private String email;
private String login;
public String getLogin() {
return login;
}
/**
*
* @return
* The id
*/
public String getId() {
return id;
}
/**
*
* @param id
* The _id
*/
public void setId(String id) {
this.id = id;
}
/**
*
* @return
* The isBanned
*/
public Boolean getIsBanned() {
return isBanned;
}
/**
*
* @param isBanned
* The isBanned
*/
public void setIsBanned(Boolean isBanned) {
this.isBanned = isBanned;
}
/**
*
* @return
* The usersFollowers
*/
public List<Object> getUsersFollowers() {
return usersFollowers;
}
/**
*
* @param usersFollowers
* The users_followers
*/
public void setUsersFollowers(List<Object> usersFollowers) {
this.usersFollowers = usersFollowers;
}
/**
*
* @return
* The v
*/
public Integer getV() {
return v;
}
/**
*
* @param v
* The __v
*/
public void setV(Integer v) {
this.v = v;
}
/**
*
* @return
* The followers
*/
public List<Object> getFollowers() {
return followers;
}
/**
*
* @param followers
* The followers
*/
public void setFollowers(List<Object> followers) {
this.followers = followers;
}
/**
*
* @return
* The groups
*/
public List<Object> getGroups() {
return groups;
}
/**
*
* @param groups
* The groups
*/
public void setGroups(List<Object> groups) {
this.groups = groups;
}
/**
*
* @return
* The phoneNumber
*/
public String getPhoneNumber() {
return phoneNumber;
}
/**
*
* @param phoneNumber
* The phoneNumber
*/
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
/**
*
* @return
* The name
*/
public String getName() {
return name;
}
/**
*
* @param name
* The name
*/
public void setName(String name) {
this.name = name;
}
/**
*
* @return
* The email
*/
public String getEmail() {
return email;
}
/**
*
* @param email
* The email
*/
public void setEmail(String email) {
this.email = email;
}
}
Wenn ich versuche, die JSON-Daten zu erhalten - der Antworttext ist null - zB Name, ID, E-Mail usw. Die Antwort.body(). ToString() gibt mir ein Ergebnis von: @ 59285 Und die Nummer ändert sich .. Ich meine, ich bekomme als Körper Klasse [email protected] Während die Zahl nach dem @ ändert jeden Knopf klicken. Ich arbeite seit dem Morgen daran und ich habe viele Tutorials und Fehler von StackOverFlow durchsucht, aber ich habe keinen solchen Fehler gefunden. Kann mir bitte jemand helfen?
Was ist der Statuscode? –
während des Debuggen, Wenn Sie den Code in Körper dann seine 200 – Noy
können Sie Ihre JSON-Antwort posten? –