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

Статус
Закрыто для дальнейших ответов.

Ruslan280

Well-Known Member
18.04.2013
50
0
#1
подскажите как отправить файл и несколько параметров методом POST на сторонний веб-сервер.
пробовал как здесь - не получилось.

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#2
а неполучилось-то что?
где логи от jvm?
 

Ruslan280

Well-Known Member
18.04.2013
50
0
#3
нашел проще решение - с использованием 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">
Код:
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")));
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#4
остался вопрос - куда копировать jar-ы на сервере - тоже в Lib\ext? . или можно-ли прикрепить их прямо к агенту как-то?
с апачевской либой (и сопутствующими) не получится "прикрепить"
 
Статус
Закрыто для дальнейших ответов.