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

在Android中为Kairos API发送POST数据

屈昊天
2023-03-14

我希望按照图像所说的去做:

以下是我试图从该图像实现的代码:

RequestQueue=Volley。newRequestQueue(this);字符串url=”https://api.kairos.com/enroll";

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        // Display the first 500 characters of the response string.
                        Log.i("Response is: " , response);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
               // mTextView.setText("That didn't work!");
            }
        })
        {

            @Override
            protected Map<String, String> getParams()
            {
                Map<String, String> params = new HashMap<String, String>();
                params.put("app_id", "4985f625");
                params.put("app_key", "aa9e5d2ec3b00306b2d9588c3a25d68e");

                return params;
            }
        };
        // Add the request to the RequestQueue.
        queue.add(stringRequest);

现在我不知道如何将JSONObject部分添加到我的POST请求中,以及如何添加Content-Type Header。请帮我解决这个问题。

共有2个答案

窦弘义
2023-03-14

对于内容类型标题,可以执行以下操作

StringRequest request = new StringRequest(Request.Method.PUT,
            url, new Response.Listener<String>() {
      @Override
      public void onResponse(String response) {
        listener.onResponse(response);
      }
    }, new Response.ErrorListener() {
      @Override
      public void onErrorResponse(@NonNull VolleyError error) {
        if (error.networkResponse != null) {
          errorListener.onErrorResponse(error.networkResponse.statusCode, null);
        } else {
          Log.e(TAG, "An error occurred while trying to verify sms: ", error);
          errorListener.onErrorResponse(500, null);
        }
      }
    }) {
      @NonNull
      @Override
      protected Map<String, String> getParams() {
        return data;
      }

      @NonNull
      @Override
      public Map<String, String> getHeaders() throws AuthFailureError {
        Map<String, String> headers = new HashMap<>();
        headers.put("Content-Type",
                "application/x-www-form-urlencoded");
        return headers;
      }
    };

对于sendJSON对象,我建议像这样创建Json对象

JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("11", 3);
            jsonObject.put("12", 4);
            jsonObject.put("13", 5);
        } catch (JSONException e) {
            e.printStackTrace();
        }

然后您可以通过jsonObject将该对象作为字符串传递。toString()并在参数中传递它,如传递任何字符串,如下所示

@NonNull
          @Override
          protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("json", jsonObject.toString();
            return params;
          }
柯英奕
2023-03-14

我在这里发现了一个类似的问题。请参阅下面的代码。您必须重写getBodyContentType方法。

public String getBodyContentType()
{
    return "application/json";
}
 类似资料:
  • 问题内容: 我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。 我正在寻找一种将 POST 数据发送到PHP脚本并显示结果的方法。 问题答案: ***更新了适用于Android 6.0+的答案。 较旧的答案 注意:此解决方案已过时。 它仅适用于最高5.1的Android设备。Android 6.0及更高版本不包含此答案中使用的Apach

  • 问题内容: 我对PHP,JavaScript和许多其他脚本语言有丰富的经验,但是对Java或Android却没有太多的经验。 我正在寻找一种将POST数据发送到PHP脚本并显示结果的方法。 问题答案:

  • 我是Android的新手,现在我在做一个应用,这个应用我需要把数据发送到服务器上,现在我用的是Volley post方法,但是当我用Volley发送数据到服务器上的时候,参数总是显示为空,这里我附上了代码,请检查一下,这里我用的是片段。

  • 我正在localhost上运行ASP.netJSON服务。我正在从Android应用程序向服务器发送JSON POST请求。服务器正在接收连接,但没有POST数据(我通过设置断点来确认这一点,断点在我从Android应用程序发布后命中)。我得到的HttpURLConnection响应代码是200 OK。但是,服务器没有收到数据。我不确定是否正在发送任何数据。我的android代码是(包裹在Asyn

  • 我试图用json作为主体数据在jmeter中发布帖子,但我只得到了400。我发送到的URL只接受json。我在《邮差》中也用过同样的卷发,效果很好。我曾尝试将json作为一个没有名称的值放入参数中,但没有成功。 我只是想发送{“uid”:“jmtest”,“name”:“newdevice”}。 对不起,我不能发布更多的链接。 采样结果为 请求看起来像 响应数据为

  • 我用这个代码发送后数据到服务器使用android。有人能给我任何想法或您的示例如何发送POST或GET json数据到服务器TOMCAT...!步骤提示: > 创建HttpClient 向给定URL发出POST请求 构建jsonObject 转换JSONObject到JSON到String 设置json为StringEntity 设置http帖子实体 设置一些头来通知服务器内容的类型 对给定URL