i have created one java program (used main method only) for parsing some website content using jsoup.now i want to insert that data into confluence page through my code.i have a separate code which update my page content by new content.but i want to insert row dynamically with my value in page of confluence.i have shared my code where i used put( ) method.on the place of this what should i use...
public class Main {
private static final String BASE_URL = "https://xxxxx.atlassian.net/wiki";
private static final String USERNAME = "xxxxxx";
private static final String PASSWORD = "xxxxxx";
private static final String ENCODING = "utf-8";
private static String getContentRestUrl(final Long contentId,
final String[] expansions) throws UnsupportedEncodingException {
final String expand = URLEncoder.encode(
StringUtils.join(expansions, ","), ENCODING);
return String
.format("%s/rest/api/content/%s?expand=%s&os_authType=basic&os_username=%s&os_password=%s",
BASE_URL, contentId, expand,
URLEncoder.encode(USERNAME, ENCODING),
URLEncoder.encode(PASSWORD, ENCODING));
}
public static void main(final String[] args) throws Exception {
final long pageId = 00000000;
HttpClient client = new DefaultHttpClient();
// Get current page version
String pageObj = null;
HttpEntity pageEntity = null;
try {
HttpGet getPageRequest = new HttpGet(getContentRestUrl(pageId,
new String[] { "body.storage", "version", "ancestors" }));
HttpResponse getPageResponse = client.execute(getPageRequest);
pageEntity = getPageResponse.getEntity();
pageObj = IOUtils.toString(pageEntity.getContent());
} finally {
if (pageEntity != null) {
EntityUtils.consume(pageEntity);
}
}
// Parse response into JSON
JSONObject page = new JSONObject(pageObj);
page.getJSONObject("body")
.getJSONObject("storage")
.put("value","removing my existing data and set new one");
int currentVersion = page.getJSONObject("version").getInt("number");
page.getJSONObject("version").put("number", currentVersion + 1);
// Send update request
HttpEntity putPageEntity = null;
try {
HttpPut putPageRequest = new HttpPut(getContentRestUrl(pageId,
new String[] {}));
StringEntity entity = new StringEntity(page.toString(),
ContentType.APPLICATION_JSON);
putPageRequest.setEntity(entity);
HttpResponse putPageResponse = client.execute(putPageRequest);
putPageEntity = putPageResponse.getEntity();
} finally {
EntityUtils.consume(putPageEntity);
}
}
}
Hey, do you think of something like this?
// List
ArrayList<String[]> people = new ArrayList<String[]>();
people.add(new String[] { "Alice", "Director", "San Diego", "23" });
people.add(new String[] { "Bob", "Chairman", "Austin", "24" });
people.add(new String[] { "Darth", "Sith Lord", "Las Vegas", "56" });
String middleText = null;
for (String[] person : people) {
middleText = middleText + "<tr>" + "<td>" + person[0] + "</td>"
+ "<td>" + person[1] + "</td>" + "<td>" + person[2]
+ "</td>" + "<td>" + person[3] + "</td>" + "</tr>";
}
String text = "<body>"
+ "<h1>Products</h1>"
+ "<table>"
+ "<tr>"
+ "<th>Name</th><th>Position</th><th>Residence</th><th>Age</th>"
+ "</tr>" + middleText + "</table>" + "</body>" + "<p> </p>"
+ "<p> </p>" + "<p>"
+ "<ac:structured-macro ac:name='gallery'>"
+ "<ac:parameter ac:name='columns'>1</ac:parameter>"
+ "</ac:structured-macro>" + "</p>";page.getJSONObject("body").getJSONObject("storage").put("value", text);
Thank you so much J.D.i really appreciate your help. now i am able to insert rows dynamically in table.this code will be run as a schedule job to get some data from some sites and put in this table as a week based or day to day job.my problem is suppose first day i run my code and it get 10 records and put in table in 10 rows.whenn next day again i will run my code and if it will get 10 more records.than i want that this 10 record will add after old 10 records.if you give any sample code like above it will very helpfull.again Thanks for your help.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.