【问题标题】:Android retrofit send 2d arrayAndroid改造发送二维数组
【发布时间】:2016-11-05 06:35:21
【问题描述】:

我正在使用改造来与服务器通信。

我想发送一个像这样的二维数组

album[0][uuid]:test
album[0][title]:test
album[0][public_text]:aaaaaalhjkl
album[0][private_text]:aaaaaalhjkl
album[1][uuid]:test2
album[1][title]:test2
album[1][public_text]:aaaaaalhjasdfkl
album[1][private_text]:aaaaaalhasdfjkl

在另一个呼叫中,当我只需要发送 uuid 时,我尝试了这个并且它有效

Call<response> deleteAlbum(@Header("token") String userToken, @Field("album[][uuid]") ArrayList<String> uuid);

我正在传递一个字符串数组列表,它工作正常。 但是在这里我有一个更复杂的pararigm,我不知道该怎么做。 如果我尝试这样的事情

Call<response> updateAlbum(@Header("token") String userToken, @Field("album[][uuid]")ArrayList<String> ablumids,@Field("album[][title]")ArrayList<String> title,@Field("album[][public_text]")ArrayList<String> public_text,@Field("album[][private_text]")ArrayList<String> private_text);

服务器只读取第一个字段(uuid)并以“没有足够的参数”响应。有没有人知道如何解决这个问题?

谢谢

【问题讨论】:

    标签: android gson retrofit okhttp


    【解决方案1】:

    好的,我想出了答案

    调用必须是

    Call<response> updateAlbum(@Header("token") String userToken, @FieldMap Map<String, String>  ablumids);
    

    并像这样传递数据

    HashMap<String, String> t = new HashMap<String, String>();
        t.put("album[0][uuid]","test");
        t.put("album[0][title]","changeTitleTest2");
        t.put("album[0][public_text]","aaaaaalhjkl");
        t.put("album[0][private_text]","aaaaaalhjkl");
    

    我不知道这是否是最好的解决方案,但它确实有效

    【讨论】:

    • 你好@Alexander,我需要类似的工作,你能把示例代码发给我吗,因为我需要它,但我不明白该怎么做。
    猜你喜欢
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2011-07-27
    • 1970-01-01
    相关资源
    最近更新 更多