airで google webmaster tool の一括操作をできるツールを作っていて、
ほぼできてはいるのですが、サイトの認証の部分だけどうしてもできなくて。
サイト認証には REST の PUT を使うんですが(唯一)
そのPUTがおかしい?
jquery を使ってRESTなAPIにXMLを送りつけてDELETEとか
で書いたようにDELETEは動かしていたんですが、
PUTもできる と書きつつもどうもうまくいかないので。
$.ajax({ url : url, type : "DELETE", PUTも可(ブラウザに依存) contentType : ‘application/atom+xml; charset=UTF-8′, 設定しないとapplication/x-www-form-urlencodedになっちゃうので必須 processData :false, 設定しないとapplication/x-www-form-urlencodedなGETクエリに変換にしちゃうので必須 data: xml_document, ←XMLドキュメント本体 beforeSend : function(request) { request.setRequestHeader(’Authorization’, ‘GoogleLogin auth=’ + token); ←Googleだとこんなかんじ }, error : function(XMLHttpRequest, status, error){ ~~~ }, success: function(result) { ~~~ } });
こんな感じで書いてはいたのですが、
RESTクライアントで投げたらOkなものが
このコード経由だとうまくいかない。
具体的には 400 Premature end of file エラーになる。
これは送信するXMLファイルにエラーがあったりするっぽいんだけど、
それはRESTクライアントで問題ないことは確認済み。
なんでなんだろうなぁと。
リサーチしてると
application/x-www-form-urlencodedとかで躓いたりしてるひとはいたんだけど、
それはそれで別のエラーになるし
Air経由でこっちがPUTしてるヘッダーの確認方法がないので、
完全にいきづまった/(^^)\
jqueryのPUTのソースもよんだけど
別に特別なことはなにもしてないしなぁ。
とりあえず今のところ登録、一括サイトマップ登録、削除とかができるから
よしとしよう。。
じゃーだめなんだろうけどw
まあ片手まで作ってるので、しばらく様子見かなぁ。。