Monotouch中的Webservice返回XML而不是JSON

时间:2012-10-12 23:40:25

标签: xamarin.ios httpwebrequest

我尝试使用Monotouch通过HttpWebRequest对象获取JSON数据。它在iPhone模拟器中运行良好,我得到了JSON。但是当我在设备中运行应用程序时,我总是在调用Web服务时返回XML而不是JSON。

当从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>

1 个答案:

答案 0 :(得分:0)

通过将服务器端Web服务设置为将json作为默认Web服务来解决此问题。对于那些可能遇到同样问题的人,以下是我必须要做的就是将Json作为默认格式(在服务器中.Net WCF的web.config文件中)

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