亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android:在 URI 生成器中附加沒有鍵的查詢參數

Android:在 URI 生成器中附加沒有鍵的查詢參數

蠱毒傳說 2023-08-04 15:26:23
我正在使用服務“ https://somedomain.net/api/items.php?token=token&item ”的 Web API 來檢索 Json 響應。在 Android 中,我使用 URI 構建器:    public static URL buildUrl(String token, String item) {        Uri builtUri = Uri.parse(BASE_URL).buildUpon()                .appendQueryParameter(PARAM_TOKEN, token)                .appendQueryParameter(PARAM_ITEM, item)                .build();        URL url = null;        try {            url = new URL(builtUri.toString());        } catch (MalformedURLException e) {            e.printStackTrace();        }        return url;    }作為 URI 生成器的結果“ https://somedomain.net/api/items.php?token=token&item=item ”我需要使用沒有參數鍵的值“item”。我嘗試使用“null”不起作用“ https://somedomain.net/api/items.php?token=token&=item ”我在互聯網上搜索了三天,沒有找到答案。在此先感謝您的幫助。
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

沒有函數可以添加沒有值的addQueryParam,因此您可以添加一些虛擬值,例如“”,然后將其替換為空字符串(replace(“=”,“”))。


但我建議您自己構建查詢,然后使用 Uri.Builder 的“查詢”功能附加 queryString。


public static URL buildUrl(String token, String item) {

    String query = new StringBuilder()

            .append(PARAM_TOKEN).append("=").append(token).append("&")

            .append(PARAM_ITEM).toString();


    Uri builtUri = Uri.parse(BASE_URL).buildUpon()

            .encodedQuery(query)

            .build();


    URL url = null;

    try {

        url = new URL(builtUri.toString());

    } catch (MalformedURLException e) {

        e.printStackTrace();

    }


    return url;

}

但它要求 BASE_URL 沒有任何查詢參數。如果有,那么您必須從舊 Uri 的部分內容構建新 Uri,但將查詢替換為根據 BASE_URL 查詢和附加參數構建的您自己的查詢


查看完整回答
反對 回復 2023-08-04
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號