繁体   English   中英

ASIHTTPRequest返回HTML而不是JSON

ASIHTTPRequest Returning HTML instead of JSON

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用ASIHTTPRequest来联系API,问题是它返回的是html而不是JSON,我不知道为什么。 几周来一切都运转良好,我似乎无法弄清什么地方坏了..

奇怪的是,使用浏览器或postie执行完全相同的请求会返回正确的JSON响应,但是当我通过ASIHTTPRequest进行请求时,这些响应头就是我得到的:

"Cache-Control" = "private, max-age=0, must-revalidate";
    Connection = "keep-alive";
    "Content-Encoding" = gzip;
    "Content-Type" = "text/html; charset=utf-8";
    Date = "Tue, 05 Jul 2011 21:11:10 GMT";
    Etag = "\"e467792713ac4124f055c1719f4ea6c2\"";
    Server = "nginx/0.7.65";
    Status = "200 OK";
    "Transfer-Encoding" = Identity;
    "X-Runtime" = 1;

和html(应该是json)。

<div id="universal_meta" logged_in_user_id="removed" style="display:none"></div>
<div id="meta" screen="projects" logged_in_as="removed"></div>
<h1>9 projects with 50 open issues</h1>
<ul class="biglinks progressbars">
 etc...

这是用于执行请求的代码。

NSURL *url = [NSURL URLWithString:path];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

if(secure){
       [request setUsername:self.username];
       [request setPassword:self.password];
}

[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[request setDownloadDestinationPath:destination];

[[self queue] addOperation:request]; //queue is an NSOperationQueue

我已经对所有登录详细信息/ URL进行了三重检查,所有内容都是正确的,由于我完全迷失了我,我将不胜感激对此提供的任何帮助。

-

更新:

灯塔已经承认一个错误有关标题的错误。 等待他们的解决方案。

2 个回复

您是否检查过使用浏览器发送的标头是否与通过代码发送请求时的标头相同?

特别是您是否尝试将“ Accept”标头添加到请求中以定义您接受JSON Content-Type?

[request addRequestHeader:@"Accept" value:@"application/json"];

尝试使用Wireshark或charlesproxy之类的工具来比较来自浏览器/ postie的工作请求,并将它们与来自ASIHTTPRequest的非工作请求进行比较-一旦发现不同之处,就应该易于修复。

AliSoftware的建议是您将看到的最可能的差异之一,但也可能还有其他事情。

1 ASIHTTPRequest通过3G和WIFI返回不同格式的html

我正在使用ASIHTTPRequest下载一些http并解析iut以从中获取某些文本,但是我发现使用3G时我的解析不起作用(导致崩溃)。 似乎返回的html中没有换行符,就像使用WiFi时一样。 这是移动网络正在执行的操作,还是iPhone正在执行的操作? 有什么办法可以更改返回的ht ...

2 从ASIHTTPRequest传递JSON到Django

我已经用尽了其他线程,所以我在这里发布了这个问题。 请原谅我在此过程中犯的任何新手错误。 我读了很多书,我觉得我很困惑。 目标:我正在尝试将数据从Objective-C中的表单传递到我的Django Web服务。 为了解决这个问题,我使用了ASIHTTPRequest类来促进信息传输 ...

3 使用ASIHttpRequest解析Json

我正在尝试使用编写此代码的ASIHttpRequset解析JSON 在bookOwn.php中,我写了以下内容 如果代码正确,将打印此行 但它不会打印,我无法确定代码中的错误。 有什么帮助吗? 提前致谢。 ...

4 ASIHTTPRequest和ASINetworkQueue以及JSON解析

我是对Objective-C和ios来说是新的。我使用ASIHTTPRequest,因为它已经有一个httphandler。 问题是当我从给定的URL(它的json)执行http请求时,它在解析和显示“ NSLog(@“ markers:%@”,mArrData)“时冻结了。是否有 ...

5 如何使用asihttprequest发布json数据

我打算发布json数据: 代码有效吗?我错过了一些代码吗? 我阅读了asihttprequest教程 ,发现它总是使用asiformdatarequest发布数据,asihttprequest和asiformdatarequest有什么区别,如果我只想发布json数据,我该怎么办?先谢 ...

6 ASIHTTPRequest-将JSON发布到PHP

我过去多次使用ASIHTTPRequest将数据发布到php脚本中,而没有任何问题。 这是我第一次尝试发送JSON,但无法正常工作。 现在的PHP脚本只是 结果为: Array() 。 什么都没有发生。 任何想法可能是什么问题? ...

7 ASIHTTPRequest将JSON括在引号中

我正在使用ASIHTTPRequest和json-framework将JSON发布到Rails应用程序中, 问题在于,当JSON到达服务器时,它会用双引号引起来, 这是我用来编码和发送JSON的代码: 哪个正确记录为: 尽管到达服务器后它的输出为: 如何停止将 ...

8 asihttprequest如何用SBJson发布json?

我写了一种方法: 该方法很简单,只需发布​​值并解析返回值,当我运行它时,我将获得控制台输出: 并崩溃!但是如果我在命令行中注释[request appendPostData:[newJSON dataUsingEncoding:NSUTF8StringEncoding]]; ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM