Last active
September 26, 2015 06:38
-
-
Save IndiceeCoder/1055371 to your computer and use it in GitHub Desktop.
Java Example - List Contributions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.indicee.api.examples; | |
import java.io.InputStream; | |
import java.io.OutputStream; | |
import java.security.NoSuchAlgorithmException; | |
import javax.net.ssl.SSLContext; | |
import javax.xml.parsers.DocumentBuilderFactory; | |
import javax.xml.transform.OutputKeys; | |
import javax.xml.transform.Result; | |
import javax.xml.transform.Source; | |
import javax.xml.transform.Transformer; | |
import javax.xml.transform.TransformerException; | |
import javax.xml.transform.TransformerFactory; | |
import javax.xml.transform.dom.DOMSource; | |
import javax.xml.transform.stream.StreamResult; | |
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; | |
import org.apache.http.HttpResponse; | |
import org.apache.http.client.methods.HttpGet; | |
import org.apache.http.conn.ClientConnectionManager; | |
import org.apache.http.conn.scheme.PlainSocketFactory; | |
import org.apache.http.conn.scheme.Scheme; | |
import org.apache.http.conn.scheme.SchemeRegistry; | |
import org.apache.http.conn.ssl.SSLSocketFactory; | |
import org.apache.http.impl.client.DefaultHttpClient; | |
import org.apache.http.impl.conn.SingleClientConnManager; | |
import org.w3c.dom.Document; | |
public class ListContributions { | |
private static final String HOST = "https://secure.indicee.com"; | |
private static final String CONSUMER_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; | |
private static final String CONSUMER_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; | |
private static final String TOKEN_KEY = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; | |
private static final String TOKEN_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; | |
private static final String DATA_SET_IQN = "iqn.2://indicee.com/{user_id}/{space_id}/dataModel/dataSets/{dataset_name}"; | |
public static void main(String[] args) throws Exception { | |
CommonsHttpOAuthConsumer commonsHttpConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET); | |
commonsHttpConsumer.setTokenWithSecret(TOKEN_KEY, TOKEN_SECRET); | |
String path = "/api/contributions/v3"; | |
DefaultHttpClient httpClient = createHttpClient(); | |
HttpGet httpGet = new HttpGet(HOST + path +"?dataSetQname=" + DATA_SET_IQN); | |
commonsHttpConsumer.sign(httpGet); | |
// send the data to get the response | |
HttpResponse httpResponse = httpClient.execute(httpGet); | |
int status = httpResponse.getStatusLine().getStatusCode(); | |
if (status != 200) { | |
throw new Exception("Error making call: " + path); | |
} | |
InputStream is = httpResponse.getEntity().getContent(); | |
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); | |
documentToStream(document, System.out); | |
} | |
private static DefaultHttpClient createHttpClient() throws Exception { | |
SchemeRegistry registry = new SchemeRegistry(); | |
registry.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory())); | |
try { | |
SSLSocketFactory sf = new SSLSocketFactory(SSLContext.getDefault(), | |
SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); | |
registry.register(new Scheme("https", 443, sf)); | |
} catch (NoSuchAlgorithmException e) { | |
throw new Exception("Problem creating ssl connection", e); | |
} | |
ClientConnectionManager conman = new SingleClientConnManager(registry); | |
DefaultHttpClient httpClient = new DefaultHttpClient(conman); | |
return httpClient; | |
} | |
private static void documentToStream(Document document, OutputStream outputStream) { | |
try { | |
Transformer transformer = TransformerFactory.newInstance().newTransformer(); | |
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); | |
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); | |
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", Integer.toString(2)); | |
Result result = new StreamResult(outputStream); | |
Source source = new DOMSource(document); | |
transformer.transform(source, result); | |
} catch (TransformerException e) { | |
throw new RuntimeException(e); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment