Java 当我在POST中使用Reformation2.0时,body为null,但响应代码为5xx? Gson-Gson=new-Gson(); 字符串json=gson.toJson(account); System.out.println(json); RequestBody=RequestBody.create(MediaType.parse(“application/json;charset=utf-8”),json); p2PApi.createDepositoAcct(body.enqueue)(新回调(){ @凌驾 公共void onResponse(调用、响应){ 试一试{ System.out.println(response.code()); System.out.println(response.errorBody().string()); }捕获(例外e){ e、 printStackTrace(); } } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } });

Java 当我在POST中使用Reformation2.0时,body为null,但响应代码为5xx? Gson-Gson=new-Gson(); 字符串json=gson.toJson(account); System.out.println(json); RequestBody=RequestBody.create(MediaType.parse(“application/json;charset=utf-8”),json); p2PApi.createDepositoAcct(body.enqueue)(新回调(){ @凌驾 公共void onResponse(调用、响应){ 试一试{ System.out.println(response.code()); System.out.println(response.errorBody().string()); }捕获(例外e){ e、 printStackTrace(); } } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } });,java,android,http,retrofit2,Java,Android,Http,Retrofit2,这是我的代码,响应成功,但是response.code()=518,并且 response消息已响应。errorBody(),response.body()为空 那为什么要回复518呢 518是什么意思?正如您从改装API文档中看到的那样 成功响应的反序列化响应体 什么是成功响应? public T body() 如果code()在范围[200..300]内,则返回true 以及errorbody方法描述 public boolean isSuccessful() 未成功响应的原始响应正文

这是我的代码,响应成功,但是response.code()=518,并且 response消息已响应。errorBody(),response.body()为空

那为什么要回复518呢


518是什么意思?

正如您从改装API文档中看到的那样

成功响应的反序列化响应体

什么是成功响应?

public T body()
如果code()在范围[200..300]内,则返回true

以及errorbody方法描述

public boolean isSuccessful()
未成功响应的原始响应正文

不成功的响应表示代码不在范围(200-300)内,这是isSuccessful()函数中的描述

如果您的代码是518,则消息肯定位于errorbody()中

有关HTTP状态码的信息,通常您可以从这里参考

5xx状态代码表示服务器错误,虽然我不知道错误到底是什么518,但通常应该是服务器端错误

如RFC7231所述,“6.响应状态代码”

状态代码元素是一个三位整数代码,给出 试图理解并满足请求的结果

HTTP状态代码是可扩展的。HTTP客户端不需要 理解所有注册状态代码的含义,尽管 理解显然是可取的。但是,客户必须 了解任何状态代码的类别,如第一个 数字,并将无法识别的状态代码视为等同于 该类的x00状态代码,但 收件人不得缓存状态代码无法识别的响应

例如,如果用户收到无法识别的状态代码471 客户,客户可以假设它的 请求并将响应视为收到400(错误)的响应 请求)状态代码。响应消息通常包含 解释状态的表示


通常情况下,状态代码是为一些常见用途预先定义的,并且可以扩展。这意味着可以有一些像518这样的状态代码,但如果您搜索web(因为它是自定义http状态代码),则没有确切的意义。但是您可以将其视为服务器端错误(5xx错误)

,正如您从改造API文档中看到的那样

成功响应的反序列化响应体

什么是成功响应?

public T body()
如果code()在范围[200..300]内,则返回true

以及errorbody方法描述

public boolean isSuccessful()
未成功响应的原始响应正文

不成功的响应表示代码不在范围(200-300)内,这是isSuccessful()函数中的描述

如果您的代码是518,则消息肯定位于errorbody()中

有关HTTP状态码的信息,通常您可以从这里参考

5xx状态代码表示服务器错误,虽然我不知道错误到底是什么518,但通常应该是服务器端错误

如RFC7231所述,“6.响应状态代码”

状态代码元素是一个三位整数代码,给出 试图理解并满足请求的结果

HTTP状态代码是可扩展的。HTTP客户端不需要 理解所有注册状态代码的含义,尽管 理解显然是可取的。但是,客户必须 了解任何状态代码的类别,如第一个 数字,并将无法识别的状态代码视为等同于 该类的x00状态代码,但 收件人不得缓存状态代码无法识别的响应

例如,如果用户收到无法识别的状态代码471 客户,客户可以假设它的 请求并将响应视为收到400(错误)的响应 请求)状态代码。响应消息通常包含 解释状态的表示


通常情况下,状态代码是为一些常见用途预定义的,并且可以扩展。这意味着可以有一些类似518的状态代码,但如果您搜索web(因为它是自定义http状态代码),则没有确切的含义。但是您可以将其视为服务器端错误之一(5xx错误)

是的,您是对的,isSuccessful()=false,响应消息在errorbody()中,但服务器中的响应消息内容意味着成功,这对我来说确实是必需的,所以我真的很困惑。您的意思是518代码在您的服务器中成功了吗?还是响应消息(json)518表示服务器成功?我不知道518代码的意思是什么,尽管改型2 issusccessful()=false,尽管消息属于reponse.errorbody(),但是消息(json)是我真正需要的。总之,所有的json消息都意味着成功,服务器应该响应200,但现在代码是518。对不起,我的英语很差…希望你能理解http状态代码和响应消息是不同的,但是客户端每次都会收到它们。http状态代码意味着请求的含义