import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManagerFactory;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthenticationException;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class ImportData {
public static void main(String[] args) throws AuthenticationException, IOException, NoSuchAlgorithmException,
KeyStoreException, KeyManagementException, CertificateException {
String url = "https://www.factorsnetwork.com/api/creditors/e6bcd036-2752-d00d-dd22-869ffac113be/data/2014-04.json";
String username = "apiuser";
String password = "test";
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
// First install certificates into the JVM cacerts file for more info refer the url
// https://github.com/netradius/InstallCert
// use the command to install after creating the jar "java -jar InstallCert.jar -h www.test.factorsnetwork.com"
FileInputStream in = new FileInputStream("C:\\Program Files\\Java\\jre7\\lib\\security\\cacerts");
ks.load(in, "changeit".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), new SecureRandom());
SSLContextBuilder builder = new SSLContextBuilder();
builder.loadTrustMaterial(null, new TrustSelfSignedStrategy());
CloseableHttpClient client = HttpClients.custom().setSslcontext(ctx).build();
try {
File file = new File("C:\\Users\\admin\\Downloads\\04_2014.csv");
HttpPost method = new HttpPost(url);
MultipartEntity entity = new MultipartEntity();
FileBody fileBody = new FileBody(file);
entity.addPart("file", fileBody);
method.setEntity(entity);
UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
method.addHeader(new BasicScheme().authenticate(creds, method, null));
HttpResponse response = client.execute(method);
System.out.println(response);
} finally {
client.close();
}
}
}