android - 我想在 volley 调用中发送 json 对象作为参数

标签 android json android-studio android-volley

嗨,我知道使用 Map 进行 Voley 调用发送参数 例如

private void SignInWithEmail() {
        //email= String.valueOf(mEmail.getText());
        //pass = String.valueOf(mPassword.getText());

        String url = RequestUrls.getInstance().signInByEmail();
        StringRequest mRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                Log.v(TAG, "Login with email" + response);
                try {
                    JSONObject jsonResponse = new JSONObject(response);
                    String code = jsonResponse.getString("code");
                    if (code == "1") {

                        JSONArray UserDetailArray = jsonResponse.getJSONArray("document");
                        Log.v("Login with email", UserDetailArray.toString());
                        JSONObject finalObject = UserDetailArray.getJSONObject(0);
                        String User_email = finalObject.getString("Email");
                        getUserByEmail(User_email);
                    } else {
                        Toast.makeText(getApplicationContext(), "Invalid Email or Password", Toast.LENGTH_SHORT).show();
                        mPassword.setText("");
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.v(TAG, "Request for getUserByEmail Error: " + error.toString());
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {

                Map<String, String> params = new HashMap<String, String>();
                params.put("Action", "GetUserByEmail");
                //Log.v("Login", "Action Email for put: " + email);
                params.put("UserName", email);
                params.put("Password", pass);
                return params;
            }
        };

        VolleySingleton.getInstance(getApplicationContext()).addToRequestQueue(mRequest);
    }

但我必须发送 this 作为参数如何做到这一点

{
  "jsonrpc": "2.0",
  "method": "signUp",
  "id": "1",
  "params": {
    "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0c6d6e6f4c6b616d6560226f6361" rel="noreferrer noopener nofollow">[email protected]</a>",
    "fname": "abc",
    "lname": "def",
    "pwd": "123"

  }
}

我是否需要添加 header 或任何其他方法,请建议我。我是 Android 开发新手。

这是 postman Chrome 扩展程序的屏幕截图

enter image description here

请帮助我。

最佳答案

JsonObjectRequest jsObjRequest = new JsonObjectRequest
        (Request.Method.POST, url, json, new Response.Listener<JSONObject>() {

    @Override
    public void onResponse(JSONObject response) {

    }
}, new Response.ErrorListener() {

    @Override
    public void onErrorResponse(VolleyError error) {
        // TODO Auto-generated method stub

    }
});

您可以在 json 参数中使用上述代码发送 json。

关于android - 我想在 volley 调用中发送 json 对象作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37685710/

相关文章:

android - 在android中,为什么UI不能脱离UI线程更新?

Android:远程服务中的主线程是什么?服务中的网络操作

javascript - 将 Excel 文件转换为 JSON : design of JSON code check

java - 如何使用 Java 序列化和反序列化来自 Google geocode 的 JSON 对象

android - Android Studio错误: java.net.SocketException: Connection reset

java - Android 文件选择器中的 FileNotFoundException

android - 在 phonegap 上自定义启动画面之前的空白屏幕和不全屏播放的视频

c# - 使用 Json.Net 在 C# 中解析 Json

android - 如何在Android Studio中手动安装Android SDK

java - 如何在 Android Studio 中添加链接源文件夹?