WP- REST-API with Java
API endpoint
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Main { public static void main(String[] args) { try { URL url = new URL("http://wp-api.pw/wp-json/"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Posts
Get
The Posts endpoint returns a Post Collection containing a subset of the site’s posts.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Main { public static void main(String[] args) { try { URL url = new URL("http://wp-api.pw/wp-json/posts"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Post
Create a Post Requires authentication
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Main { public static void main(String[] args) { try { String content = '{"title": "This is a post","content_raw": "This is some content"}'; URL url = new URL("http://wp-api.pw/wp-json/posts"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("test:password".getBytes(StandardCharsets.UTF_8))); conn.setRequestProperty("Content-Length", String.valueOf(content.getBytes("UTF-8").length)); conn.setDoOutput(true); DataOutputStream wr = new DataOutputStream(conn.getOutputStream()); wr.writeBytes(content); wr.flush(); wr.close(); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Delete
Delete a Post Requires authentication
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Main { public static void main(String[] args) { try { URL url = new URL("http://wp-api.pw/wp-json/posts/229"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("DELETE"); conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("test:password".getBytes(StandardCharsets.UTF_8))); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Media
Post
To create the raw data for an attachment. This is a binary object (blob), such as image data or a video.
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Main { public static void main(String[] args) { try { char[] buffer = new char[1024]; StringWriter writer = new StringWriter(); FileReader fileReader = new FileReader("/home/chen/IMG_1551.jpg"); for (int n = 0; -1 != (n = fileReader.read(buffer));) { writer.write(buffer, 0, n); } fileReader.close(); String content = writer.toString(); URL url = new URL("http://wp-api.pw/wp-json/media"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "image/jpeg"); conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("test:password".getBytes(StandardCharsets.UTF_8))); conn.setRequestProperty("Content-Length", String.valueOf(content.getBytes("UTF-8").length)); conn.setDoOutput(true); DataOutputStream wr = new DataOutputStream(conn.getOutputStream()); wr.writeBytes(content); wr.flush(); wr.close(); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Users
Get
This endpoint offers a permalink to get the current user, without needing to know the user’s ID.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Base64; public class Main { public static void main(String[] args) { try { URL url = new URL("http://wp-api.pw/wp-json/users/me"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString("test:password".getBytes(StandardCharsets.UTF_8))); System.out.printf("Response: %d %sn", conn.getResponseCode(), conn.getResponseMessage()); BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); String input; while ((input = br.readLine()) != null) { System.out.println(input); } br.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }