繁体   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

我已经三次检查了所有登录详细信息/网址,一切都是正确的,我非常感谢任何帮助,因为我完全迷路了。

--

更新:

Lighthouse 已经承认他们这边的标题存在错误。 等待他们的解决方案。

2 个回复

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

特别是您是否尝试将“接受”header 添加到您的请求中以定义您接受 json 内容类型?

[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