如何在android RequestParams()中传递嵌套参数



我使用android-async-http库通过使用RequestParams()传递参数从url获取json,当参数不嵌套时,它没有任何问题,但我的url包含嵌套参数,我不明白如何将这些参数添加到RequestParams()

获取数据的URL:

https://www.someurl.com/something/v3/something/something?view=READER&fields=description,locale(country,language),name,pages/totalItems,posts/totalItems,published,updated,url&key=my_key

我想知道如何添加locale(country,language)pages/totalItems

我MainActivity

public void getBlogInformation() throws JSONException {
    RequestParams params = new RequestParams();
    params.put("key", "123asdf456ghjklabcdefghijklmn");
    params.put("view", "reader");
    params.put("fields", "description");
    //How to add next params???
    params.put("locale", );
    BlaBlaRESTClient.get("", params, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
           try {
                Log.d("Response ", ""+response);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        @Override
        public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
            super.onFailure(statusCode, headers, throwable, errorResponse);
            Log.d("Error: ", ""+errorResponse);
        }
    });
}

您的查询字符串具有以下字段-值对(或参数):

    <
  • 视图/strong>: 读者
  • 字段: 描述,语言环境(国家、语言),名称,页面/totalItems,职位/totalItems,发布,更新url
  • <
  • 键/strong>: my_key

没有像'locale'这样的参数,它是你的值的一部分。所以你不能把它作为

传递
params.put("locale", "[whateveryouputhere]");

,输出结果类似于:

...?view=reader&locale=[whateveryouputhere]&...

我现在假设你正在调用的API不在你的控制之下,参数必须是那个特定的形式。这意味着您必须对值进行URL编码,因为它包含与URL中使用的字符冲突的字符:

description,locale(country,language),name,pages/totalItems,posts/totalItems,published,updated,url

description%2Clocale(country%2Clanguage)%2Cname%2Cpages%2FtotalItems%2Cposts%2FtotalItems%2Cpublished%2Cupdated%2Curl

你可以这样填充你的RequestParameters:

params.put("key", "123asdf456ghjklabcdefghijklmn");
params.put("view", "reader");
params.put("fields", "description%2Clocale(country%2Clanguage)%2Cname%2Cpages%2FtotalItems%2Cposts%2FtotalItems%2Cpublished%2Cupdated%2Curl");

当然,您可以将'description'替换为合适的描述,并将'totalItems'替换为整数。但原则是一样的。然后,服务器将接受参数字段,并将字符串值解析为其单独的值。

详情请看这里:URL查询字符串Wikipedia

URL编码见这里:URL编码/解码工具

相关内容

  • 没有找到相关文章

最新更新