Dropwizard (версия 0.8.2) использует внутреннюю оболочку для предоставления HTTP-клиента. Я использую этот клиент для отправки запроса Multipart POST на внешнюю конечную точку останова в службу SMS. Код приведен ниже, но он, похоже, не работает, потому что я не получаю никакого сообщения через этот метод, и он не вызывает никаких ошибок. URI для первого образца http://enterprise.com/GatewayAPI/rest?userid=%s&password=%s&method=xlsUpload&filetype=zip&msg_type=TEXT&auth_scheme=PLAIN&v=1.1Dropwizard Jersey client Многостраничный http-запрос
FileDataBodyPart fileDataBodyPart = new FileDataBodyPart(fileName, file,
MediaType.APPLICATION_OCTET_STREAM_TYPE);
FormDataMultiPart multiPart = new FormDataMultiPart();
multiPart.field("fileName", fileName).bodyPart(fileDataBodyPart);
Entity<FormDataMultiPart> entity =
Entity.entity(multiPart, multiPart.getMediaType());// MediaType.MULTIPART_FORM_DATA_TYPE)
Client tenacityClient = TenacityJerseyClientBuilder
.builder(AppDependencyKeys.BULK_SMS)
.usingTimeoutPadding(Duration.milliseconds(500)).build(client)
.register(MultiPartFeature.class);
Invocation invocation = getResourceBuilder(tenacityClient, uri).buildPost(entity);
Future<Response> futureResponse = invocation.submit();
long start = System.currentTimeMillis();
futureResponse.get();
Но один и та же работа с описанным ниже методом, когда я использую Apache Commons HTTPClient. рабочий код для него приведен ниже.
HttpClient client = new HttpClient();
PostMethod method = new
PostMethod("http://enterprise.com/GatewayAPI/rest");
Part[] parts = {
new StringPart("method", "xlsUpload"),
new StringPart("userid", "*******"),
new StringPart("password", "*******"),
new StringPart("filetype", "zip"),
new StringPart("v", "1.1"),
new StringPart("auth_scheme", "PLAIN"),
new FilePart(file.getName(), file)
};
method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams()));
int statusCode = client.executeMethod(method);
log.info("Status code: {}", statusCode);
Но я хочу использовать первый способ, так как это лучше подходит для моей инфраструктуры.
В чем вопрос? – eg04lt3r
Вопрос: почему первый код не работает, пока второй работает? – pradex