I use java to send a fax via the RingCentral Fax API. However I got HTTP 415 error code. I really have no idea how to make it work.
public void sendFax(String body, String...toList) {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(baseUrl + URI_FAX);
httpPost.addHeader("Content-Type", "multipart/mixed; boundary=Boundary_1_6506429161_101");
httpPost.addHeader("Authorization", "Bearer " + rcoAuthResp.getAccess_token());
try {
List < RCPhone > list = new ArrayList < > ();
for (String to: toList) {
list.add(RCPhone.builder().phoneNumber(to).build());
}
String requestBody = mapper.writeValueAsString(RCFaxPayload.builder().to(list).faxResolution("High").build());
FormBodyPart bodyPart1 = FormBodyPartBuilder.create()
.setName("json")
.setBody(new StringBody(requestBody, ContentType.APPLICATION_JSON))
.build();
bodyPart1.getHeader().removeFields("Content-Disposition");
bodyPart1.getHeader().removeFields("Content-Transfer-Encoding");
bodyPart1.getHeader().removeFields("Content-type");
bodyPart1.addField("Content-type", "application/json");
FormBodyPart bodyPart2 = FormBodyPartBuilder.create()
.setName("body")
.setBody(new StringBody(body, ContentType.TEXT_PLAIN))
.build();
bodyPart2.getHeader().removeFields("Content-Disposition");
bodyPart2.getHeader().removeFields("Content-Transfer-Encoding");
bodyPart2.getHeader().removeFields("Content-type");
bodyPart2.addField("Content-type", "text/plain");
HttpEntity entity = MultipartEntityBuilder
.create()
.setBoundary("Boundary_1_6506429161_101")
.addPart(bodyPart1)
.addPart(bodyPart2)
.build();
httpPost.setEntity(entity);
httpPost.getEntity().writeTo(System.out);
String response = processHttpResp(httpClient, httpPost);
System.out.println(response);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}