首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WURFL没有servlet

WURFL没有servlet
EN

Stack Overflow用户
提问于 2015-11-23 12:08:45
回答 3查看 174关注 0票数 0

在我的数据库中,我有一个很长的用户代理列表,我需要它们的翻译,一个非常有希望的工具是WURFL,但它没有分级支持,也没有很好的文档。我可以恢复的所有示例都解释了如何使用java实现它,但在我的示例中,我没有servlet或http请求\response--只是需要翻译的一长串用户代理,是否有一种使用简单java程序查询WURFL数据库的简单方法?

EN

回答 3

Stack Overflow用户

发布于 2015-11-24 13:23:33

最好的解决方案是自己编译wurfl云客户机-java jar (Maven),它可以在:https://github.com/WURFL/wurfl-cloud-client-java中找到:在其他地方没有jar\maven\gradle。

然后将其导入到您的项目中,并运行以下命令:

代码语言:javascript
复制
@Test(groups = "unit")
public class CloudClientUserAgentQueryTest extends Loggable{

private static final String ua = "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/30.0.1599.12 Mobile/11A465 Safari/8536.25 (3B92C18B-D9DE-4CB7-A02A-22FD2AF17C8F)";

private ICloudClientManager ICloudClient;
private AbstractDevice device;
private String[] capabilities;
private String mobile;


@BeforeClass
public void setup() throws Exception {
    CloudClientLoader loader = new CloudClientLoader(null, "/DefaultTest.properties");
    ICloudClient = loader.getClientManager();
}

@BeforeMethod
public void setupDevice() {
    device = ICloudClient.getDeviceFromUserAgent(ua, capabilities);

    Object mobile = device.get("is_wireless_device");
    this.mobile = mobile != null ? mobile.toString() : "unknown";
}

@Test
public void testClient() {
    assertTrue(mobile.equals("true"));
}
}
票数 2
EN

Stack Overflow用户

发布于 2017-01-11 14:07:11

最简单的方法就是使用简单的旧WURFL Java,它可以使用一个简单的可执行Java类。您只需将其放在类路径中(或者使用maven导入它,以防使用它),然后执行如下操作:

代码语言:javascript
复制
public static void main(String[] args) {
    String ua = "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/30.0.1599.12 Mobile/11A465 Safari/8536.25 (3B92C18B-D9DE-4CB7-A02A-22FD2AF17C8F)";

  WURFLEngine engine = new GeneralWURFLEngine("path/to/wurfl.zip");

  Device device = engine.getDeviceForRequest(ua);
  System.out.println("Device id: " + device.getId());
  System.out.println("Capability preferred_markup: " + device.getCapability("preferred_markup"));
  System.out.println("Device name: " + device.getCapability("device_name"));
  System.out.println("Brand: " + device.getCapability("brand_name"));
}

请注意,您将需要一个wurfl文件。如果您没有它(当前的文件版本是科学家移动在商业许可下发布的),前面提到的云客户端Java也可以工作。

票数 1
EN

Stack Overflow用户

发布于 2015-11-24 13:43:03

51 51Degrees支持离线处理用户代理列表。我看到了对如何在其网站上使用此功能的解释。

但是,由于大量的用户代理包含逗号,我建议将代码中的输出CSV分隔符从上面的链接更改为其他内容,以避免混淆。

此方法使用用户代理列表作为输入,每行有一个用户代理。

希望这能有所帮助。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33870760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档