0

.svc で定義された WCF サービスがあります。

<%@ ServiceHost Language="C#" Debug="true" Service="OL4RENT.WebService.BienWSREST" CodeBehind="BienWSREST.svc.cs"  Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

インターフェース:

  [WebeInvoke( Method = "GET",
  ResponseFormat=WebMessageFormat.Json,
  BodyStyle = WebMessageBodyStyle.Bare,
  UriTemplate = "/{tipo}/{bienId}")]
  DataBien VerBien(string tipo, string bienId);

したがって、デフォルトでは Json を返す必要がありますが、ブラウザ経由で通常のリクエストを行うと、応答が xml 形式で返されます! リクエストに Content-Type = application/json がある場合にのみ Json を取得します。

json を返すようにデフォルトの動作を構成するにはどうすればよいですか?

4

1 に答える 1

0

MSDN docから: 要求メッセージに Accept ヘッダーが含まれている場合、Windows Communication Foundation (WCF) インフラストラクチャは、サポートする型を検索します。

デフォルトでは、ブラウザーは各リクエストの Accept ヘッダーに多くのものを追加します。詳細については、 http://www.gethifi.com/blog/browser-rest-http-accept-headersを参照してください。肝心なのは、使用しているブラウザーのヘッダーに「application/json」の前に「application/xml」があるため (存在する場合)、WCF 内部が XML を返すことです。

REST クライアント (Fiddler、Chrome または FF 用の RESTClient 拡張機能など) を使用してサービス呼び出しをテストすることをお勧めします。

WCF サービスが要求に対してどのように動作するかを構成する方法については、MSDN のドキュメントを参照してください。

于 2013-06-16T23:41:50.373 に答える