发出GET请求以在Android中改装API时出错

时间:2018-08-09 07:47:55

标签: android rest retrofit

当我进行GET请求进行翻新时,出现错误 400-错误的请求

  

请求长度大于1024时抛出此错误。

当请求长度小于1024时,它可以正常工作。我不知道如何解决此问题。

2 个答案:

答案 0 :(得分:0)

您可以像在onResponse方法中那样进行操作,请记住400是响应状态而不是错误:

if (response.code() == 400) {              
 Log.v("Error code 400",response.errorBody().string());
}

您可以使用Gson处理除200-300以外的任何响应代码:

if (response.code() == 400) {
Gson gson = new GsonBuilder().create();
ErrorPojoClass mError=new ErrorPojoClass();
try {
     mError= gson.fromJson(response.errorBody().string(),ErrorPojoClass .class);
     Toast.makeText(getApplicationContext(), mError.getErrorDescription(), 
Toast.LENGTH_LONG).show();
    } catch (IOException e) {
       // handle failure to read error
    }        
}

将其添加到build.gradle中:编译'com.google.code.gson:gson:2.7'

如果要创建Pojo类,请转到JSON Schema 2 Pojo并粘贴示例Json响应。选择源类型Json和注释Gson。

答案 1 :(得分:0)

解决方案: 这不是改造的问题。问题出在我正在使用的Api(WCF)内部。在Web配置中,maxQueryStringLength的值设置为1024。使用邮递员发送请求时,我遇到了确切的问题。