コンテンツへスキップ

WCFでREST フォーマットをXMLからJSONにしてみたらContent-Typeでまたやられた

2010年8月30日

データフォーマットをXMLからJSONにしてみました。

iOS向けのDOMライブラリはあるみたいなんだけれども、Apple Push NotificationはJSONみたいだし、

GoogleにアップされているJSONライブラリを使用しようかなと考えてます。

 

さて、JSONにするのは超簡単でした。

'GET
<WebGet(UriTemplate:="", ResponseFormat:=WebMessageFormat.Json)>
Public Function [Get]() As TestGetRes
'POST
<WebInvoke(UriTemplate:="", Method:="POST", RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Json)>
Public Function Create(ByVal instance As TestPostReq) As TestPostRes

WebGetやWebInvokeの属性で、RquestFormatやResponseFormatにJSONを指定するだけです。

今までJSONにできるのはレスポンスだけだと思い込んでいたのですが、リクエストもJSONで受け取れるんですね。

WebInvokeのインテリセンスを見ていて気が付きました。

 

んでもって、FiddlerでPOSTしてみたのですが、HTTP400・・・。

あれぇ?

なんかちょっと前にも同じ目にあったことが、あるような、無いような・・・?

 

検索してたら、どっかのフォーラムに Content-TypeにJSONを指定してる?って解答がありました。

オイオーイ、オレ、つい最近XMLで引っかかってるじゃんかよ!

WCFでREST/XMLサービス POSTするときはContent-Typeを

 

Request HeadersにContent-Typeをちゃんと設定してリクエストしてみました。

Content-Type: application/json; charset=utf-8 または text/json

image 

そしたら、HTTP200で正常に戻ってきてくれました!

結果もばっちりOK!

From → .NET

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。