use of net.geoprism.dhis2.dhis2adapter.exception.BadServerUriException in project geoprism-registry by terraframe.
the class DHIS2Bridge method metadataGet.
public <T> MetadataGetResponse<T> metadataGet(Class<?> dhis2Type, List<NameValuePair> params) throws InvalidLoginException, HTTPException, BadServerUriException {
String objectNamePlural = DHIS2Objects.getPluralObjectNameFromClass(dhis2Type);
if (params == null) {
params = new ArrayList<NameValuePair>();
}
boolean hasObjectName = false;
for (NameValuePair param : params) {
if (param.getName().equals(objectNamePlural)) {
hasObjectName = true;
}
}
if (!hasObjectName) {
params.add(new BasicNameValuePair(objectNamePlural, "true"));
}
return new MetadataGetResponse<T>(this.apiGet("metadata", params), objectNamePlural, dhis2Type);
}
use of net.geoprism.dhis2.dhis2adapter.exception.BadServerUriException in project geoprism-registry by terraframe.
the class HTTPConnector method httpPost.
// public HTTPResponse postAsMultipart(String url, File file)
// {
// try {
// if (!isInitialized())
// {
// initialize();
// }
//
// HttpPost post = new HttpPost(this.getServerUrl() + url);
//
// post.setRequestHeader("Content-Type", "multipart/form-data");
//
// FilePart filePart;
//
// filePart = new FilePart("form_def_file", file, "application/xml", "UTF-8");
//
//
// Part[] parts = { filePart };
// MultipartRequestEntity multipartRequestEntity = new MultipartRequestEntity(parts, post.getParams());
//
// post.setRequestEntity(multipartRequestEntity);
//
// HTTPResponse response = this.httpRequest(post);
//
// if (response.getStatusCode() == 401)
// {
// throw new InvalidLoginException("Unable to log in to " + this.getServerUrl());
// }
//
// return response;
// } catch (FileNotFoundException e) {
// throw new RuntimeException(e);
// }
// }
public DHIS2Response httpPost(String url, List<NameValuePair> params, HttpEntity body) throws InvalidLoginException, HTTPException, BadServerUriException {
try {
if (!isInitialized()) {
initialize();
}
HttpPost post = new HttpPost(this.buildUri(url, params));
post.addHeader("Content-Type", "application/json");
post.setEntity(body);
try (CloseableHttpResponse response = client.execute(post, this.getContext())) {
return this.convertResponse(response);
}
} catch (IOException | URISyntaxException e) {
throw new HTTPException(e);
}
}
use of net.geoprism.dhis2.dhis2adapter.exception.BadServerUriException in project geoprism-registry by terraframe.
the class HTTPConnector method httpDelete.
@Override
public DHIS2Response httpDelete(String url, List<NameValuePair> params) throws InvalidLoginException, HTTPException, BadServerUriException {
try {
if (!isInitialized()) {
initialize();
}
HttpDelete delete = new HttpDelete(this.buildUri(url, params));
delete.addHeader("Content-Type", "application/json");
try (CloseableHttpResponse response = client.execute(delete, getContext())) {
return this.convertResponse(response);
}
} catch (URISyntaxException | IOException e) {
throw new HTTPException(e);
}
}
use of net.geoprism.dhis2.dhis2adapter.exception.BadServerUriException in project geoprism-registry by terraframe.
the class HTTPConnector method getContext.
private HttpClientContext getContext() throws BadServerUriException {
try {
URIBuilder uri = new URIBuilder(this.getServerUrl());
final HttpHost targetHost;
try {
targetHost = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());
} catch (IllegalArgumentException e) {
throw new BadServerUriException(e, this.getServerUrl());
}
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(new AuthScope(targetHost.getHostName(), targetHost.getPort()), new UsernamePasswordCredentials(username, password));
// This authcache code is used to enable "Preemptive authentication".
// http://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/authentication.html#d5e613
// TODO : We shouldn't need to be using preemtive authentication (because it's a potential
// security risk), however I'm not sure how else to get this working.
AuthCache authCache = new BasicAuthCache();
BasicScheme basicAuth = new BasicScheme();
authCache.put(targetHost, basicAuth);
HttpClientContext context = HttpClientContext.create();
context.setCredentialsProvider(credsProvider);
context.setAuthCache(authCache);
return context;
} catch (URISyntaxException e) {
throw new BadServerUriException(e, this.getServerUrl());
}
}
use of net.geoprism.dhis2.dhis2adapter.exception.BadServerUriException in project geoprism-registry by terraframe.
the class HTTPConnector method httpPut.
public DHIS2Response httpPut(String url, List<NameValuePair> params, HttpEntity body) throws InvalidLoginException, HTTPException, BadServerUriException {
try {
if (!isInitialized()) {
initialize();
}
HttpPut post = new HttpPut(this.buildUri(url, params));
post.addHeader("Content-Type", "application/json");
post.setEntity(body);
try (CloseableHttpResponse response = client.execute(post, this.getContext())) {
return this.convertResponse(response);
}
} catch (IOException | URISyntaxException e) {
throw new HTTPException(e);
}
}
Aggregations