Как За-post-ить Файл На Веб-сервер?

Тема в разделе "Lotus - Программирование", создана пользователем Ruslan280, 9 дек 2013.

Статус темы:
Закрыта.
  1. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    подскажите как отправить файл и несколько параметров методом POST на сторонний веб-сервер.
    пробовал как здесь - не получилось.

    файл бинарный.
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    а неполучилось-то что?
    где логи от jvm?
     
  3. Ruslan280

    Ruslan280 Well-Known Member

    Регистрация:
    18 апр 2013
    Сообщения:
    49
    Симпатии:
    0
    нашел проще решение - с использованием apachehttpclient http://hc.apache.org/httpcomponents-client...x/download.html
    скачал-распаковал-скопировал jar-ы в "C:\Program Files (x86)\IBM\Lotus\Notes\jvm\lib\ext"

    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">рабочий агент для клиента: отправляет POSTом бинарный файл и параметр на php-страницу веб-сервера и выводит ответ в консоль</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
    import lotus.domino.AgentBase;
    import lotus.domino.AgentContext;
    import lotus.domino.Session;

    import java.io.File;

    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.mime.MultipartEntityBuilder;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.entity.mime.content.StringBody;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;;


    public class JavaAgent extends AgentBase {

    public void NotesMain() {

    try {


    CloseableHttpClient httpclient = HttpClients.createDefault();
    try {
    HttpPost httppost = new HttpPost("http://xxxxxx.zz.mu/test.php");

    FileBody bin = new FileBody(new File("c:/test.jpg"));
    StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);

    HttpEntity reqEntity = MultipartEntityBuilder.create()
    .addPart("bin", bin)
    .addPart("comment", comment)
    .build();


    httppost.setEntity(reqEntity);

    System.out.println("executing request " + httppost.getRequestLine());
    CloseableHttpResponse response = httpclient.execute(httppost);
    try {
    System.out.println("----------------------------------------");
    System.out.println(response.getStatusLine());
    HttpEntity resEntity = response.getEntity();
    if (resEntity != null) {
    System.out.println("Response content length: " + resEntity.getContentLength());
    System.out.println(EntityUtils.toString(resEntity));
    }
    EntityUtils.consume(resEntity);
    } finally {
    response.close();
    }
    } finally {
    httpclient.close();
    }

    } catch (Exception e) {
    e.printStackTrace();
    } finally {

    }
    }
    }

    остался вопрос - куда копировать jar-ы на сервере - тоже в Lib\ext? . или можно-ли прикрепить их прямо к агенту как-то?
    (да- скопировал jar-ы тудаже на сервере-перезагрузил-пошло.)

    еще про кириллицу utf-8 - получилось так- StringBody sdocname = new StringBody(docname, ContentType.TEXT_PLAIN.withCharset(Charset.forName("UTF-8")));
     
  4. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    с апачевской либой (и сопутствующими) не получится "прикрепить"
     
Загрузка...
Статус темы:
Закрыта.

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