我尝试使用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>
答案 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>