【问题标题】:Get values from URL in Java [duplicate]从Java中的URL获取值[重复]
【发布时间】:2019-10-27 02:34:43
【问题描述】:

【问题讨论】:

    标签: java android-studio url


    【解决方案1】:

    您可以尝试使用String#replaceAll 进行单行解决:

    String url = "https://example.com/?link=https://play.google.com/store/apps/details?id=com.example.cp&hl=es&apn=com.picker.cp&st=Share+this+app&utm_source=AndroidApp?businessId=5d8648b561abf51ff7a6c189";
    String businessId = url.replaceAll(".*[&?]businessId=([^=?&]+)\\b.*", "$1");
    System.out.println(businessId);
    

    打印出来:

    5d8648b561abf51ff7a6c189
    

    实际上,Apache 有许多库可以让您更轻松地处理您的需求。在 Android 上,以下方法可能有效:

    Uri uri = Uri.parse(url);
    String linkParam = uri.getQueryParameter("link");
    Uri uri2 = Uri.parse(linkParam);
    String businessId = uri2.getQueryParameter("businessId");
    

    【讨论】:

      【解决方案2】:

      我注意到您的问题中有 android 标签。您可以将Url字符串解析为Uri,然后您可以获得查询参数。

      String myUrl = "https://example.com/?link=https://play.google.com/store/apps/details?id=com.example.cp&hl=es&apn=com.picker.cp&st=Share+this+app&utm_source=AndroidApp?businessId=5d8648b561abf51ff7a6c189";
      
      Uri uri = Uri.parse(myUrl);
      String businessId = uri.getQueryParameter("businessId");
      

      【讨论】:

      • 你确定吗? businessId 查询参数是另一个 URL 的一部分,该 URL 本身就是实际 URL 的一部分。
      • 没试过,但我认为应该可以。请分享您注意到的任何差距。如果没有,那么进行正则表达式匹配以找到预期值可能很容易。你怎么看?
      猜你喜欢
      • 2017-03-12
      • 2021-07-08
      • 2014-05-31
      • 2015-05-23
      • 2021-11-21
      • 2017-08-18
      • 2013-02-24
      • 2011-12-29
      • 2020-06-18
      相关资源
      最近更新 更多