发送带有参数的解析云代码时,出现IllegalArgumentException

mi

我在发送带有参数作为HashMap的云代码请求时遇到问题。有趣的是,如果我发送带有空参数的请求,则它的工作效果很好。这是我的请求代码(使用ishmaelMakitla的答案进行了更新):

Map<String, Object> par = new HashMap<String, Object>();
par.put("ingredients", new String[]{"hey"});
ParseCloud.callFunctionInBackground("", par, new FunctionCallback() {
  @Override
  public void done(Object o, Throwable throwable) {
    Log.v("28", "" + o);
    Log.v("27", "" + throwable.getMessage());
    for (Object obj : (ArrayList)o) {
      Log.v("29",""+((ParseObject) obj).get("title"));
    }
  }

  @Override
  public void done(Object object, ParseException e) {
    Log.v("26", "" + object);
    if (e != null) {
      Log.v("27", "" + e);
    }
    for (Object obj : (ArrayList)object) {
      Log.v("25",""+((ParseObject) obj).get("title"));
    }
  }
});

和我的云代码方法:

Parse.Cloud.define ('getFoo', function (req, res) {
    var arrayIngredients = [];
    arrayIngredients = req.params.ingredients;
    var recepyQuery = new Parse.Query("Foos");
    recepyQuery.find( {
    success: function(result) {
        res.success(result);    
    },
    error: function() {
        res.error("Nothing here");    
    }    
    });
});

该代码可以正常工作,但是如果我取消对par.put(...)部分的注释,则会出现此错误:

    com.parse.ParseException: java.lang.IllegalArgumentException: invalid type for ParseObject: class [Ljava.lang.String;

这是我的错误堆栈:

05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err: com.parse.ParseException: java.lang.IllegalArgumentException: invalid type for ParseObject: class [Ljava.lang.String;
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:114)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at android.os.Handler.handleCallback(Handler.java:733)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at android.os.Looper.loop(Looper.java:146)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5653)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at java.lang.reflect.Method.invoke(Method.java:515)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
05-30 11:31:26.265 12612-12612/com.parse.starter W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at dalvik.system.NativeStart.main(Native Method)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err: Caused by: java.lang.IllegalArgumentException: invalid type for ParseObject: class [Ljava.lang.String;
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseEncoder.encode(ParseEncoder.java:136)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseEncoder.encode(ParseEncoder.java:97)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseRESTCommand.<init>(ParseRESTCommand.java:138)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseRESTCloudCommand.<init>(ParseRESTCloudCommand.java:22)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseRESTCloudCommand.callFunctionCommand(ParseRESTCloudCommand.java:28)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseCloudCodeController.callFunctionInBackground(ParseCloudCodeController.java:28)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseCloud$1.then(ParseCloud.java:64)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseCloud$1.then(ParseCloud.java:60)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task$15.run(Task.java:917)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.completeAfterTask(Task.java:908)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.continueWithTask(Task.java:715)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.continueWithTask(Task.java:726)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task$13.then(Task.java:818)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task$13.then(Task.java:806)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task$15.run(Task.java:917)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.completeAfterTask(Task.java:908)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.continueWithTask(Task.java:715)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.continueWithTask(Task.java:690)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.onSuccessTask(Task.java:806)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.onSuccessTask(Task.java:796)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at bolts.Task.onSuccessTask(Task.java:830)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseCloud.callFunctionInBackground(ParseCloud.java:60)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.ParseCloud.callFunctionInBackground(ParseCloud.java:99)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at com.parse.starter.MainActivity.onCreate(MainActivity.java:62)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.Activity.performCreate(Activity.java:5541)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.ActivityThread.access$900(ActivityThread.java:172)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
05-30 11:31:26.275 12612-12612/com.parse.starter W/System.err:  ... 7 more

这是我犯的错误还是Parse存在问题?我正在使用Parse Server和Parse的Android SDK 1.13.0

伊斯梅尔·马基特拉

而不是传递String[]值,只需传递a String,为此,您应该按以下方式更改请求的代码-

Map<String, Object> par = new HashMap<String, Object>();
par.put("ingredients", "someIngredientValue"});
ParseCloud.callFunctionInBackground("getFoo", par, new FunctionCallback() {
  @Override
  public void done(Object o, Throwable throwable) {
    Log.v("28", "" + o);
    Log.v("27", "" + throwable.getMessage());
    for (Object obj : (ArrayList)o) {
      Log.v("29",""+((ParseObject) obj).get("title"));
    }
  } 
//the rest of your code ...

然后在接收端,您说request.params.ingredients-这应该给您'someIngredientValue'。我希望这有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

发送带有参数的解析云代码时,出现IllegalArgumentException

来自分类Dev

在带有 @RefreshScope 的类中使用 @PostConstruct 时出现 IllegalArgumentException

来自分类Dev

Mailgun:使用解析云代码发送图像

来自分类Dev

Mailgun:使用解析云代码发送图像

来自分类Dev

在解析中使用第三方库进行云代码处理时出现ReferenceError

来自分类Dev

解析服务器云代码在访问req.params时出现问题

来自分类Dev

发送带有curl的请求时出现无效的报头错误

来自分类Dev

发送带有curl的请求时出现无效的报头错误

来自分类Dev

在部署代码以解析云时出错

来自分类Dev

parse.com的云代码GET函数是否带有参数?

来自分类Dev

使用带有 GIT 的 Spring 云配置读取配置时出现问题

来自分类Dev

使用OneSignal在解析云代码中发送推送通知

来自分类Dev

解析云代码查询不断出现未定义

来自分类Dev

解析云代码结构

来自分类Dev

解析云代码部署

来自分类Dev

亚马逊:如何发送带有云信息输出数据的SNS

来自分类Dev

如何在解析时检查云代码生成的错误

来自分类Dev

如何在解析时检查云代码生成的错误

来自分类Dev

在图像上发送带有文本的HTML电子邮件时出现图像中断

来自分类Dev

发送带有单引号字符的SMS文本时出现问题-mmcli(ModemManager)

来自分类Dev

发送带有字母字符的USSD代码

来自分类Dev

发送带有命令参数的对象

来自分类Dev

Livecode“发送”带有引号的参数

来自分类Dev

javascript发送带有文件的发布参数

来自分类Dev

无法发送带有androidannotations的POST参数

来自分类Dev

解析云代码:查询后删除所有对象

来自分类Dev

检查用户是否具有角色-解析云代码

来自分类Dev

从带有参数的角度应用程序调用云函数

来自分类Dev

使用Angular的HttpClient时,如何向后端发送带有URI中矩阵参数的请求?

Related 相关文章

  1. 1

    发送带有参数的解析云代码时,出现IllegalArgumentException

  2. 2

    在带有 @RefreshScope 的类中使用 @PostConstruct 时出现 IllegalArgumentException

  3. 3

    Mailgun:使用解析云代码发送图像

  4. 4

    Mailgun:使用解析云代码发送图像

  5. 5

    在解析中使用第三方库进行云代码处理时出现ReferenceError

  6. 6

    解析服务器云代码在访问req.params时出现问题

  7. 7

    发送带有curl的请求时出现无效的报头错误

  8. 8

    发送带有curl的请求时出现无效的报头错误

  9. 9

    在部署代码以解析云时出错

  10. 10

    parse.com的云代码GET函数是否带有参数?

  11. 11

    使用带有 GIT 的 Spring 云配置读取配置时出现问题

  12. 12

    使用OneSignal在解析云代码中发送推送通知

  13. 13

    解析云代码查询不断出现未定义

  14. 14

    解析云代码结构

  15. 15

    解析云代码部署

  16. 16

    亚马逊:如何发送带有云信息输出数据的SNS

  17. 17

    如何在解析时检查云代码生成的错误

  18. 18

    如何在解析时检查云代码生成的错误

  19. 19

    在图像上发送带有文本的HTML电子邮件时出现图像中断

  20. 20

    发送带有单引号字符的SMS文本时出现问题-mmcli(ModemManager)

  21. 21

    发送带有字母字符的USSD代码

  22. 22

    发送带有命令参数的对象

  23. 23

    Livecode“发送”带有引号的参数

  24. 24

    javascript发送带有文件的发布参数

  25. 25

    无法发送带有androidannotations的POST参数

  26. 26

    解析云代码:查询后删除所有对象

  27. 27

    检查用户是否具有角色-解析云代码

  28. 28

    从带有参数的角度应用程序调用云函数

  29. 29

    使用Angular的HttpClient时,如何向后端发送带有URI中矩阵参数的请求?

热门标签

归档