Я должен отправить файл PDF в API с помощью Pentaho.Я использовал «Пользовательский класс Java», чтобы получить файл PDF и отправить его в API.Все это делается с помощью метода HttpPost и multipart как Content_Type.Но я получаю сообщение об ошибке « Импортированный класс» org.apache.http.HttpResponse «Не удалось загрузить ».До этого я также получал сообщение об ошибке httpClient, но когда я копировал файлы jar httpclient в Pentaho / Java / lib / ext, это было исправлено.Теперь я нигде не могу найти httpResponse jar-файлы.
Пожалуйста, помогите ...
Спасибо
import java.io.File;
import org.apache.http.HttpResponse; // This line Produces error
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.*;
import org.apache.http.impl.client.HttpClients;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
r = createOutputRow(r, data.outputRowMeta.size());
// Get the value from url
String urlString = get(Fields.In, "url").getString(r);
// Get the file name
String longFileNameString = get(Fields.In, "filename").getString(r);
// Load the file
File file = new File(attachmentFilePath);
HttpPost post = new HttpPost(urlString);
MultipartEntityBuilder entity = MultipartEntityBuilder.create();
entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addBinaryBody("file", file);
entity.addTextBody("fileName", file.getName());
post.setEntity(entity.build());
HttpClient httpClient = HttpClients.createDefault();
try{
//Make HTTP Call
HttpResponse response = httpClient.execute(post);
// Check if response code is as expected
if (response.getStatusLine().getStatusCode() != 200) {
putError(data.outputRowMeta, r, 1, "Error returned", "HTTP Status Code", "HTTP Status: " + response.getStatusLine().getStatusCode());
return true;
}
// Set value of HTTP Status, integer values need conversion
get(Fields.Out, "http_status").setValue(r, Long.valueOf(response.getStatusLine().getStatusCode()));
} catch (Exception e) {
// Set value of HTTP Status to -1 since HTTP Post caused exception
get(Fields.Out, "http_status").setValue(r, Long.valueOf(-1));
return true;
}
// Send the row on to the next step.
putRow(data.outputRowMeta, r);
return true;
}