はてなダイアリーのAtomPubで日記一覧をGETしたい
別になんてことなくて、POSTよりも簡単なんです。
で、ですね、はてなのAtomPubにおけるすべての通信にX-WSSEヘッダが必要なのですが、はてなダイアリーのAtomPubだと他人(権限のない人)の日記一覧のGETが出来ないんです。
これはどうなんでしょうか。権限が無い日記に対してPOSTとかPUTとかDELETEできちゃうのはまずいと思うんですが、日記一覧の取得は出来て問題ないと思うんですが。これは間違った考え方でしょうか。だれか教えて。
それからエラーで返ってくるHttp Status Codeが「500(Internal Server Error)」なんですが、これもどうなの。「403(Forbidden)」を返すのが正しいのではないかと思うのですが。それとも本当にエラーが起きているんだろうか。
今書いているコード自体は、「自分(権限のある)の記事一覧」が取って来れれば何も問題ないのですが、ちょっと気になったので。
一応コード
本当に(?)とってくるメソッドだけ。
- 第一引数には「http://d.hatena.ne.jp/InoHiro/atom/blog」など
- 第二引数にはユーザーのユーザー名、パスワードなどから作ったX-WSSEヘッダ
private void get( string query, string header ) { HttpWebRequest request = ( HttpWebRequest )WebRequest.Create( query ); request.Method = "GET"; request.Headers.Add( "X-WSSE", header ); request.ContentType = "application/x.atom+xml"; HttpWebResponse response; try { response = ( HttpWebResponse )request.GetResponse(); } catch( WebException webExp ) { throw webExp; } if( response != null ) { Stream responstream = response.GetResponseStream(); StreamReader stmReader = new StreamReader( responstream ); string result = stmReader.ReadToEnd(); this.analyseResponse( responstream ); } }