PI JavaClient
package com.ibm.watson.pi;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.NameValuePair;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import com.ibm.json.java.JSONObject;
public class HelloWatsonPIMain {
/**
*
* http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/apis/#!/
* personality-insights/profile
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String personality_insights_url = "https://gateway.watsonplatform.net/personality-insights/api";
String url = "/v2/profile";
String personality_username = "aaa";
String personality_password = "xxx";
String header_content_type = "text/plain";
String header_accept = "application/json"; // default. or text/csv
String header_accept_language = "en";
String header_content_language = "en";
String query_include_raw = "false";
String query_headers = "false"; // for CSV response
String dataPlainText = FileUtils.readFileToString(new File(
"files/samples/personality-insights-text.txt"), "UTF-8");
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(personality_username,
personality_password));
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider).build();
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
{
params.add(new BasicNameValuePair("body", dataPlainText));
params.add(new BasicNameValuePair("include_raw",
query_include_raw));
params.add(new BasicNameValuePair("headers", query_headers));
}
HttpPost httpPost = new HttpPost(personality_insights_url + url);
{
httpPost.setEntity(new UrlEncodedFormEntity(params));
}
{
httpPost.setHeader(HttpHeaders.CONTENT_TYPE,
header_content_type);
httpPost.setHeader(HttpHeaders.ACCEPT, header_accept);
httpPost.setHeader(HttpHeaders.ACCEPT_LANGUAGE,
header_accept_language);
httpPost.setHeader(HttpHeaders.CONTENT_LANGUAGE,
header_content_language);
}
System.out
.println("Executing request " + httpPost.getRequestLine());
CloseableHttpResponse response = httpclient.execute(httpPost);
try {
System.err.println(response.getStatusLine());
System.err.println(response.getStatusLine().getStatusCode());
Header[] headers = response.getAllHeaders();
for (Header header : headers) {
System.err.println(header.getName() + ": "
+ header.getValue());
}
HttpEntity httpEntity = response.getEntity("UTF-8");
System.err.println(EntityUtils.toString(httpEntity));
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
}