お世話になります。
livedoorブログをJavaから連携して記事の取得、自動投稿をするためにAtomPubAPIを利用しています。
APIはGET,POST,PUT,DELETEの4つがあり、そのうちGETで記事の一覧を取得することはできました。
POSTで記事投稿、PUTで記事更新を行ったのですが、いずれもうまく実行できておりません。
POSTを送信するソースが以下になります。
Java
1 2 3 public static void exec(URL url, String user, String password, String content) throws IOException { 4 5 HttpsURLConnection http = null; 6 7 try { 8 http = (HttpsURLConnection)url.openConnection(); 9 http.setRequestMethod("POST"); 10 http.setRequestProperty("Authorization", "Basic " + new String(Base64.encode((user + ":"+ password).getBytes()),StandardCharsets.UTF_8)); 11 http.setDoInput(true); 12 http.setDoOutput(true); 13 http.setRequestProperty("Accept-Language", "jp"); 14 http.setRequestProperty("Content-Type","text/xml;charset=utf-8"); 15 http.connect(); 16 17 OutputStream os = http.getOutputStream(); 18 PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os, "UTF-8"))); 19 writer.print(content); 20 writer.flush(); 21 writer.close(); 22 23 os.close(); 24 25 if (http.getResponseCode() == HttpURLConnection.HTTP_OK) { 26 try (InputStreamReader isr = new InputStreamReader(http.getInputStream(), 27 StandardCharsets.UTF_8); 28 BufferedReader reader = new BufferedReader(isr)) { 29 String line; 30 while ((line = reader.readLine()) != null) { 31 System.out.println(line); 32 } 33 } 34 } 35 36 } catch (Exception e) { 37 throw e; 38 } finally { 39 http.disconnect(); 40 } 41 } 42
引数のcontentには
http://help.blogpark.jp/archives/52372407.html
に記載されている[記事の投稿方法]-XMLをユーザ名等を書き換えたものが格納されています。
上記を実行した結果、HTTPレスポンスとして400 BadRequestが返却されてしまいます。
GETの処理はできているので認証部分には問題ありません。
どなたか解決方法をご存知の方、ご教示お願いできませんでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー