相关疑难解决方法(0)

在Android中使用URI构建器或使用变量创建URL

我正在开发一款Android应用.我需要为我的应用程序构建一个URI来发出API请求.除非有另一种方法将变量放在URI中,否则这是我发现的最简单的方法.我发现你需要使用Uri.Builder,但我不太清楚如何使用.我的网址是:

http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=[redacted]&mapid=value 
Run Code Online (Sandbox Code Playgroud)

我的方案是http,权限是lapi.transitchicago.com,路径是/api/1.0,路径段是ttarrivals.aspx,查询字符串是key=[redacted]&mapid=value.

我的代码如下:

Intent intent = getIntent();
String value = intent.getExtras().getString("value");
Uri.Builder builder = new Uri.Builder();
builder.scheme("http")
    .authority("www.lapi.transitchicago.com")
    .appendPath("api")
    .appendPath("1.0")
    .appendPath("ttarrivals.aspx")
    .appendQueryParameter("key", "[redacted]")
    .appendQueryParameter("mapid", value);
Run Code Online (Sandbox Code Playgroud)

我明白我能做到URI.add,但我该如何将其整合到Uri.Builder?我要补充的一切都像URI.add(scheme),URI.add(authority)等等?或者这不是这样做的方法吗?此外,还有其他更简单的方法将变量添加到URI/URL吗?

android uri uribuilder

190
推荐指数
5
解决办法
16万
查看次数

Uri.parse()总是在单元测试中返回null

这个简单的单元测试总是通过,我无法弄清楚原因.

@RunWith(JUnit4.class)
class SampleTest {
    @Test testSomething() {
        Uri uri = Uri.parse("myapp://home/payments");
        assertTrue(uri == null);
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我所尝试的是使用"传统"URI(http://example.com),但uri也是null.

android unit-testing uri

19
推荐指数
3
解决办法
1万
查看次数

针对URL的Scala模式匹配

是否有Scala库/示例将URL/URI解析为案例类结构以进行模式匹配?

scala

18
推荐指数
2
解决办法
1万
查看次数

从URL获取域/主​​机名的最快方法是什么?

我需要浏览大量的字符串url并从中提取域名.

例如:

http://www.stackoverflow.com/questions将摘录www.stackoverflow.com

我最初使用,new URL(theUrlString).getHost()但URL对象初始化为进程增加了大量时间,似乎不需要.

是否有更快的方法来提取可靠的主机名?

谢谢

编辑:我的错误,是的www.将包含在上面的域名示例中.此外,这些网址可能是http或https

java dns url

17
推荐指数
2
解决办法
4万
查看次数

从给定的URL中提取主域名

我使用以下内容从URL中提取域:(它们是测试用例)

String regex = "^(ww[a-zA-Z0-9-]{0,}\\.)";
ArrayList<String> cases = new ArrayList<String>();
cases.add("www.google.com");
cases.add("ww.socialrating.it");
cases.add("www-01.hopperspot.com");
cases.add("wwwsupernatural-brasil.blogspot.com");
cases.add("xtop10.net");
cases.add("zoyanailpolish.blogspot.com");

for (String t : cases) {  
    String res = t.replaceAll(regex, "");  
}
Run Code Online (Sandbox Code Playgroud)

我可以得到以下结果:

google.com
hopperspot.com
socialrating.it
blogspot.com
xtop10.net
zoyanailpolish.blogspot.com
Run Code Online (Sandbox Code Playgroud)

前四个案例都很好.最后一个不好.我想要的是:blogspot.com对于最后一个,但它给出了zoyanailpolish.blogspot.com.我究竟做错了什么?

java regex url domain-name

10
推荐指数
4
解决办法
3万
查看次数

Java | 从URL获取protocol://domain.port的API

我有URL作为引荐来源网址,并希望从中获取协议和域。

例如:如果https://test.domain.com/a/b/c.html?test=hello输出URL,则输出必须为https://test.domain.com。我已经经历了http://docs.oracle.com/javase/7/docs/api/java/net/URI.html,但似乎找不到任何可以直接这样做的方法。


我没有使用Spring,所以不能使用Sprint类(如果有)。


伙计们,我可以编写自定义登录名以从URL获取端口,域和协议,但是正在寻找已经实现此功能的API,可以将我在各种情况下的测试时间降至最低。

java

7
推荐指数
2
解决办法
1万
查看次数

从Java/Android中的URL获取域名

在我的应用程序中,我需要从URL获取favicon.ico.(例如" http://google.com/favicon.ico ").用户可以输入各种URL,我只需要域名.

例子:

http://drive.google.com/bla/bla/bla -> drive.google.com

www.facebook.com/lol -> www.facebook.com

192.168.0.1 -> 192.168.0.1 (but not really necessary)
Run Code Online (Sandbox Code Playgroud)

有没有人有办法得到这个?谢谢!

java url android domain-name

6
推荐指数
1
解决办法
1万
查看次数

在 WebView 中完成 AdBlock

我即将在我的 Android 应用程序中推出 WebView AdBlocking。我想知道这是否会有效地阻止广告,或者在 Webview 本身内是否还有更多工作要做,而我还没有修改。基本上我有一个存储在 Android 资产中的主机文件,其中列出了数百个广告服务器站点。我将此文件读入 AdBlocker,然后将其应用到 WebViewClient 中,如下所示:

// AdBlocker.isAdURL(String url)

 public Boolean isAdURL(String url){
      Boolean retValue = false;
      if ((url == null) || (url.isEmpty()))
        return false;
      if ((adServers == null)|| (adServers.size() <1))
        return false;
      try{
        String domainName = getUrlsDomain(url);
        if (adServers.contains(domainName)) {
            retValue = true;
        }
    } catch(URISyntaxException e){

    }

    return retValue;
}
Run Code Online (Sandbox Code Playgroud)

我只在 WebViewClient 中使用它,如下所示:

@Deprecated
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {

      if (adBlocker.isAdURL(url)) {
         ByteArrayInputStream nada = new ByteArrayInputStream("".getBytes());
        return new …
Run Code Online (Sandbox Code Playgroud)

android android-webview

5
推荐指数
1
解决办法
1万
查看次数

如何解析 URL 字符串以仅在 Kotlin 中获取域?

我看不懂 Java,我需要 Kotlin 的答案,我在这里阅读了一个线程:从给定的 url 获取域名

比如说我有一个这样的字符串: "http://www.myWebsite.com/profile"

那么如何以编程方式仅在这样的字符串中获取域名"myWebsite.com"

android kotlin

1
推荐指数
1
解决办法
1921
查看次数