2015-11-23 2 views
-1

В моей базе данных У меня есть длинный список пользовательских агентов, для которых я требую их перевода, очень перспективным инструментом является WURFL, но он не имеет поддержки градиента и не очень хорошо документирован. Все примеры, которые я смог восстановить, объяснили, как реализовать его с помощью сервлета Java, но в моем случае у меня нет сервлета или HTTP-запроса \ ответа, просто длинный список пользовательских агентов, которым нужен перевод, есть ли простой способ запросить базу данных WURFL с помощью простой java-программы?WURFL без сервлета

ответ

1

Лучшее решение состоит в том, чтобы скомпилировать wurfl-cloud-client-java jar jar (Maven), его можно найти в: https://github.com/WURFL/wurfl-cloud-client-java не существует jar \ maven \ gradle, доступного в другом месте.

Затем импортировать его в свой проект и запустить следующее:

@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")); 
} 
} 
-1

51Degrees Java API поддерживает автономную обработку списков User-Agent. Я видел объяснение how to use this feature on their website.

Однако, поскольку большое количество User-агентов содержат запятые, я бы предложил изменить выходной разделитель CSV в коде из приведенной выше ссылки на что-то еще, чтобы избежать путаницы.

Этот метод использует список User-агентов в качестве входа с одним User-Agent в строке.

Надеюсь, что это поможет.

+0

Спасибо, но мне нужно использовать WURFL. – Adi

0

Самый простой способ сделать это - просто использовать простой Java WURFL API Java, который может работать с простым исполняемым Java-классом. Вы просто должны положить его в путь к классам (или импортировать его с Maven, в случае, если вы используете его), и сделать что-то вроде этого:

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. Если у вас его нет (текущие версии файлов распространяются Scientiamobile по коммерческой лицензии), вышеупомянутый облачный клиент Java также может работать.

Смежные вопросы