【问题标题】:Retrofit 500 Internal Server Error, Postman working改造 500 内部服务器错误,邮递员工作
【发布时间】:2017-05-05 21:22:24
【问题描述】:

我知道这样的帖子肯定有 1000 条,但是我到处寻找错误并找不到它,所以我希望你们可以看看,如果你发现我遗漏了什么,请告诉我。

令牌类

public class Token {

public static final String POST = "tokens";

@SerializedName("token")
@Expose
private String token;
@SerializedName("role")
@Expose
private String role;

public String getToken() {
    return token;
}

public void setToken(String token) {
    this.token = token;
}

public String getRole() {
    return role;
}

public void setRole(String role) {
    this.role = role;
    }
}

实体类

public class Entity {

public Entity(){}

private Token mToken;

@SerializedName("email")
@Expose
private String mEmail;
@SerializedName("password")
@Expose
private String mPassword;

public Entity setFirstName(String firstName){return this;}
public Entity setLastName(String lastName){return this;}
public Entity setEmail(String email){
    mEmail = email;
    return this;
}
public Entity setPassword(String password){
    mPassword = password;
    return this;
}
public Entity setPasswordConfirmation(String passwordConfirmation){return this;}
public Entity setAddress(String address){return this;}
public Entity setCity(String city){return this;}
public Entity setCountryId(Integer countryId){return this;}
public Entity setToken(Token token){
    mToken = token;
    return this;
}

public String getEmail(){ return mEmail; }
public String getPassword(){ return mPassword; }
public Token getToken(Token token){ return mToken; }
}

API服务

 @POST(Token.POST)
Observable<Token> loginEntity(@Body Entity entity);

API 调用

Observable<Token> loginEntityCall = RestClient.getInstance().service.loginEntity(loginEntity);

OkHttp 输出什么

--> POST http://randomapi/api/v1/tokens http/1.1
内容类型:应用程序/json;字符集=UTF-8
内容长度:55
{"email":"sample.user@example.com","password":"123456"}
--> END POST(55 字节正文)

返回

这是复制到邮递员中的值

postman

所以邮递员给出了 OK,而我的应用程序给出了 500。我检查了所有值,但找不到错误。 :p

【问题讨论】:

  • 你检查服务器日志了吗?
  • @cricket_007 不,我现在没有服务器访问权限
  • 嗯,这是唯一可以为您提供内部错误原因的内容。我猜改造不会发送 JSON,或者您需要将其指定为请求的标头
  • 邮递员截图中有 3 个标题。确保你使用它们。
  • 使用代理来精确观察您的请求。

标签: android api retrofit postman


【解决方案1】:

我实际上也发生了同样的事情。在 Postman 中,您发送的是 RAW json,但在 Retrofit 中,默认情况下您不会这样做。基本上,您发送的内容并不完全相同。将其更改为发送原始 json。见this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2021-06-21
    • 2017-09-14
    • 1970-01-01
    • 2016-09-27
    • 2017-12-13
    相关资源
    最近更新 更多