1

Monotouch を使用して HttpWebRequest オブジェクトを介して JSON データを取得しようとしています。IPhone Simulator で正常に動作し、JSON が返されます。しかし、デバイスでアプリケーションを実行すると、Web サービスが呼び出されると、常に JSON ではなく XML が返されます。

IPhone から実行する場合、JSON として結果を取得するために設定する必要がある特定の構成パラメーターはありますか? IPhone 5、ios 6 でこれを実行しています。

これが私のコードです..

var request = HttpWebRequest.Create(String.Format (@"{0}/GetActiveProductCountAfterID/filter?minID={1}",baseUrl, lastProductNumberInDatabase));
Logger.Debug("Request URL is: " + request.RequestUri);
request.ContentType = @"application/json";  
request.Method = "GET";
try{
     using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
     {
        if (response.StatusCode != HttpStatusCode.OK)
           Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
        {
            string content = reader.ReadToEnd();
........

シミュレーターで実行すると、コンテンツが整数として取得されます。例: 3456

しかし、iPhoneから実行すると、

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">3456</int>
4

1 に答える 1

0

サーバー側の Web サービスで json をデフォルトの Web サービスとして設定することで解決しました。同じ問題に遭遇する可能性のある方のために、Json をデフォルトの形式にするために私がしなければならなかったことを次に示します (サーバーの .Net WCF の web.config ファイル内)。

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true"   defaultOutgoingResponseFormat="Json" />
  </webHttpEndpoint>
</standardEndpoints>

于 2012-10-13T14:32:20.627 に答える