Пройти авторизацию и скачать файл

Тема в разделе "Lotus + Java + LS2J", создана пользователем Mady, 2 июл 2011.

  1. Mady

    Mady Well-Known Member

    Регистрация:
    16 сен 2006
    Сообщения:
    66
    Симпатии:
    0
    Доброго времени суток.

    Проблема следующая,

    Я пытаюсь пройти веб авторизацию и скачать, файл. проблема следующая если файл содержит кириллицу то url получается кодированный. и когда отрабатывает код файл не скачивания, а с латиницей все нормально.

    пример кода.

    HttpClient client = new HttpClient();
    client.getParams().setParameter("username", "admin");
    client.getParams().setParameter("password", "123456789");
    HostConfiguration host = client.getHostConfiguration();
    host.setHost(new URI("http://localhost:8082", true));
    String fileString = "/test.nsf/7f65461bc464365e462578bf00137d8e/3cdd090b4a5588d6462578bf0047fbba/$FILE/%D0%94%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5.doc";
    //String fileString = "/test.nsf/7f65461bc464365e462578bf00137d8e/459f167f3c0ab7d7462578bf004913ac/$FILE/DA.doc";
    GetMethod method = new GetMethod("http://192.168.89.109:8082/names.nsf?login&username=admin&password=123456789&RedirectTo="+fileString);
    client.executeMethod(host, method);
    byte[] bs = method.getResponseBody();
    if (bs.length==0) return;
    System.out.println(bs.length);
    File file = new File("D:\\test.doc");
    OutputStream out = new FileOutputStream(file);
    out.write(bs);
    out.close();
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    ну собсно, от того что это java - поведение никак не зависит ;)
    возможно надо энкодить УРЛ...
    например так
    причем имя надо указывать именно в русскими символами, а не их эскэйпами
     
  3. Mady

    Mady Well-Known Member

    Регистрация:
    16 сен 2006
    Сообщения:
    66
    Симпатии:
    0
    Да дело в том что имя файла уже закодированный лотусовыми средствами
    Код (Text):
        fileName = (String) session.evaluate("@URLEncode(\"Domino\";\""+fileName+"\")").elementAt(0);
     
  4. Mady

    Mady Well-Known Member

    Регистрация:
    16 сен 2006
    Сообщения:
    66
    Симпатии:
    0
    и что самое интересное

    если поставить доступ на БД по умолчанию всем, те обращаться к ссылке на прямую без редиректа, то все скачивается нормально.

    Вопрос как пройти авторизацию, и скачать вложения?
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    у вас авторизация по сессии? - если да, то нужно куки получать/подсовывать, при запросах
     
Загрузка...

Поделиться этой страницей