当前位置: 首页 > 知识库问答 >
问题:

android volley JsonObjectRequest,它不返回正文,仅返回200

申屠健
2023-03-14

如何在volley中发出JSON请求,我需要在正文中发送一个验证头和JSON对象,并且我只希望得到一个状态代码200的答案

JsonObjectRequest request = new JsonObjectRequest(
                method,
                url,
                myJsonObject,
                responseListener,
                errorListener) {

            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                String creds = String.format("%s:%s", login, password);
                String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT);
                headers.put("Authorization", auth);
                return headers;
            }
        };


new Response.Listener<String>(){

                                @Override
                                public void onResponse(String response) {
                                    Toast.makeText(getActivity(), response, 1000).show();

                                }

我尝试了使用string或JSON object,object的不同类型的响应侦听器,但总是出现错误:android volley org.JSON.JSONException:在字符0的输入结束

或者volley中是否有其他类型的请求支持json对象和主体中的验证头,并且响应只是一个http状态代码?

共有1个答案

都博裕
2023-03-14

我知道这是一个老问题,但我想我还是要回答这个问题,因为我的回答可能会对将来的人们有所帮助-

您需要创建一个扩展Request类的自定义类,并在该类中重写这些方法

    @Override
    protected Response parseNetworkResponse(NetworkResponse response) {
        return Response.success(response.statusCode, HttpHeaderParser.parseCacheHeaders(response));
    }

    @Override
    protected void deliverResponse(Integer statusCode) {
        mListener.onResponse(statusCode);
    }

这是全班的心和魂。

关于完整的代码和解释,请查看我的博客主题-

从Android Volley库获取服务器响应状态200

链接1

希望有帮助,谢谢

 类似资料:
  • 我以为我的授权实现已经完成,但是当试图检索用户详细信息对象时,我得到的只是用户名。 我正在使用oauth,并提供以下详细信息。 配置AuthenticationManager: 完成后,我可以调试到我的userDetailsService: 这完成得很好,我的客户端得到了JWT。但是我在调试以后的控制器方法时发现了以下问题。 在本例中,injectedUser=null,auth是一个OAuth2

  • 问题内容: 我创建了一个自定义错误类型来包装错误,以便更轻松地在Golang中进行调试。当有打印错误时它可以工作,但是现在引起了恐慌。 演示版 当我调用一个函数时,它不会返回错误,我仍然应该能够包装该错误。 预期的行为是,如果错误为nil,则应该简单地忽略它,不幸的是,它会做相反的事情。 我希望它能打印出来。而是即使错误为nil也会打印。 问题答案: 正在将err变量与nil进行比较,但实际上它是

  • 我正在为我的单选按钮使用ItemListener。我看到了很多ItemListener函数,但我的似乎工作方式不同。 它返回的值是“javax.swing.JRadioButton[User,445453,49x18,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.synth”。SynthBorder@1f2f60d,flags=288,

  • 问题内容: 搜索时,Elasticsearch返回包含各种元信息的数据结构。 实际结果集包含在从数据库返回的JSON结果内的“ hits”字段中。 Elasticsearch是否有可能仅返回所需的数据(然后是“ hits”字段的内容)而没有嵌入所有其他元数据中? 我知道我可以将结果解析为JSON并提取出来,但是我不希望复杂性,麻烦和性能下降。 谢谢! 这是Elasticsearch返回的数据结构的

  • 我已经发布了一个请求,并在postman上测试它,响应在postman和android logcat上正确返回,但在改型时,它在正文中返回null 下面是响应的模型 当我发送请求时,响应将获得null响应,而errorbody内容将获得以下内容 [size=99 text={\r\n“errors”:{\r\n“driversapi”:[\r\n“order alredy assig…] 下面是预

  • 问题内容: 好的,我有以下代码: 然后,当我尝试回显内容时,只能回显输出第一项,但是如果我尝试回显,则会得到未定义的偏移量。 但是,如果我通过PHPMyAdmin运行以上查询,它将返回10个项目的列表。为什么不能将其识别为10个项的数组,让我回显0-9? 谢谢您的帮助。 问题答案: 那是因为数组代表返回结果集中的一行。您需要再次执行该功能以获得下一条记录。例: