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();

}

}

}