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
まあ片手まで作ってるので、しばらく様子見かなぁ。。