在使用Json Object发出Post请求时,在android中不起作用

时间:2016-07-23 00:33:40

标签: java php android json string

我有一个问题,我无法解决,我将我的Android应用程序连接到Laravel API,一切都运行良好,但当我尝试发送JsonObject为Post请求它返回500(我知道500是服务器端的错误,但Dingo喜欢抛出该代码)。 问题是,我只是在发送带有String变量名的JsonObject时遇到此错误,但是当我发送文字字符串时,一切正常。我已经尝试过编码为UTF-8。会是什么呢?我将在下面留下我的代码。

这种方式有效:

private void authorizeClient(String name,String secret,String ID){

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    JSONObject jsonObject = new JSONObject();
    try{
        String secretFinal = URLEncoder.encode(secret, "UTF-8");
        jsonObject.put("grant_type", "client_credentials");
        jsonObject.put("name", name);
        jsonObject.put("client_secret", "c3melO2KvDQ:APA91bHYvSUJsSkB3dOKwk8zfgG0");
        jsonObject.put("client_id","287cdh27ldns7isvw7e3sd47ngau37t449123456");

这种方式不起作用:

private void authorizeClient(String name,String secret,String ID){

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    JSONObject jsonObject = new JSONObject();
    try{
        String secretFinal = URLEncoder.encode(secret, "UTF-8");
        jsonObject.put("grant_type", "client_credentials");
        jsonObject.put("name", name);
        jsonObject.put("client_secret", secret);
        jsonObject.put("client_id",ID);

1 个答案:

答案 0 :(得分:0)

谢谢,这一切都是固定的。这是数据库不允许的String的长度。我通过制作一个子串来修复它。