我一直试图在过去5个小时内将json对象发布到PHP脚本.我已经阅读了所有的文档,似乎代码应该工作,但它没有.请求已发出并且收到正常,但我无法访问已发布的json数据,或者甚至不知道它是否已正确发送.我一直在获取一个空的php数组,而不是json数据.
NSString *jsonString = [self.tableDataSource JSONRepresentation];
NSURL *url = [NSURL URLWithString:@"http://myserver.com/test.php"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[request addRequestHeader:@"Content-Type" value:@"application/json"];
[request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[request startSynchronous];
Run Code Online (Sandbox Code Playgroud)
这是php脚本(test.php)
$handle = fopen('php://input','r');
$jsonInput = fgets($handle);
$decoded = json_decode($jsonInput,true);
print_r($decoded);
Run Code Online (Sandbox Code Playgroud)
我正在使用来自https://github.com/pokeb/asi-http-request.git的最新ASIHttpRequest代码
我究竟做错了什么?????
干杯,Trav.
我正在使用ASIHttpRequest库每分钟询问一次Web服务以获取更新.该应用程序接收一个json字符串并解析它.它运作正常.
但我想提高效率..只要有更新,服务器发送到应用信息的最佳方式是什么?而不是不断地轮询网络服务?
这是一个非常常见的问题,一次又一次地问堆栈溢出,我读了很多这方面的答案,但我仍然有点困惑.
我需要从iPhone sdk调用webservices.
这是我的问题:
我不清楚SOAP或REST返回什么响应.有什么特定的,如果响应是XML那么我们应该使用REST,如果JSON我们应该使用SOAP?
ASIHTTP与SOAP和REST的作用是什么?
如果我得到XML响应
Run Code Online (Sandbox Code Playgroud)<oproduct> <iid>113133791</iid> <icategoryid>270</icategoryid> <imerchantid>1547</imerchantid> <iadult>0</iadult> <sname>The Ashes / 1st Test - England v Australia - Day 1</sname> <sawdeeplink>http://www.acbcd.com/pclick.php?p=113133791&a=111402&m=1547&platform=cs</sawdeeplink> <sawthumburl>http://images.abcdd.com/thumb/1547/113133791.jpg</sawthumburl> <fprice>69.99</fprice> </oproduct>
我需要手工解析吗?或者我如何处理XML响应?
我收到了很多关于REST和SOAP的文章,但没有适当的代码来理解它.对于这些问题的任何帮助,我将不胜感激.
我ASIHTTPRequest在我的项目中使用过,但是在文件ASIDataCompressor.m行中190:
if ([inputStream streamStatus] == NSStreamEventErrorOccurred) {
if (err) {
*err = [NSError errorWithDomain:NetworkRequestErrorDomain code:ASICompressionError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Compression of %@ failed because we were unable to write to the destination data file at %@",sourcePath,destinationPath],NSLocalizedDescriptionKey,[outputStream streamError],NSUnderlyingErrorKey,nil]];
}
[compressor closeStream];
return NO;
}
Run Code Online (Sandbox Code Playgroud)
它警告我:

谁知道怎么修它?谢谢
在ASIHTTPRequest库中是否有ASIWebPageRequest的替代方法,我可以用它来下载iOS中的整个网页,包括CSS,JavaScript和图像文件等?我似乎无法在AFNetworking框架中找到类似的类,到目前为止我的搜索还没有成功.我不能使用ASIHTTPRequest,因为我似乎无法在我的任何应用程序中使用它,没有我为iOS7找到工作的例子而且我更倾向于使用更新的东西.
我基本上想要将整个网页存储在iPhone/iPad上的目录中,以便用户可以在本地编辑它,然后将整个目录发送到他们的Web服务器.用户还需要能够在UIWebView中随时查看网页.
如果这不可能,我将只需下载HTML文件,然后解析它以查找外部资源的URL,然后单独下载.我宁愿不这样做,但是如果我必须那么什么是最好的图书馆来完成这个?
感谢任何人帮助我!
我正在使用ASIHttpRequests和ASINetworkQueue在iPhone应用程序中从Web服务中检索大约100k XML文件和大量缩略图.我想以这种方式缓存请求NSURLCache.ASI似乎不支持缓存,我查看代码并将其放到C来创建请求,因此插入该NSURLCache层似乎很棘手.
实现这个的最佳方法是什么?
我知道我可以attributesOfItemAtPath用来修改文件的修改时间/日期......但是有没有办法设置文件的修改日期/时间?
我看过如何以编程方式设置文件的修改时间?但似乎并不适用.
我问的原因是我使用http://allseeing-i.com/ASIHTTPRequest/(如下所示)来获取文件...但是时间戳与服务器上的Last-Modified时间不一致.我想使用Last-Modified标头来设置下载文件的日期/时间,这样我就可以将下载的时间保持在我的系统上,就像在服务器上一样.
我的代码如下:
ASIHTTPRequest *requestFeed = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:kGZipSQLURL]];
[requestFeed setNumberOfTimesToRetryOnTimeout:2];
[requestFeed setDownloadDestinationPath:librarySQLGZipPath];
[requestFeed setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
[requestFeed setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[requestFeed setSecondsToCache:60*60*24*30];
[requestFeed setDownloadCache:[ASIDownloadCache sharedCache]];
[requestFeed startSynchronous];
NSString *lastModified = [[requestFeed responseHeaders] objectForKey:@"Last-Modified"];
NSLog(@"Last Modified: %@",lastModified);
Run Code Online (Sandbox Code Playgroud)
因此,字符串lastModified包含时间/日期戳.有没有办法确保将文件librarySQLGZipPath现在设置为日期/时间lastModified?使用当前方法,文件librarySQLGZipPath保存下载的时间,这对我来说是无效的.
谢谢!
Jann
稍后编辑:
因为我想很好地在这个页面上如何为此做代码,并且仍然希望Steven Kramer能够回答我现在要用我使用代码得到的答案来编辑问题:
而这NSDateFromRFC1123是一个例程:http://blog.mro.name/2009/08/nsdateformatter-http-header/(有一些调整)将Last-Modified标题字符串更改为NSDate对象:
NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:[self NSDateFromRFC1123:lastModified] ,NSFileModificationDate, nil];
NSError *errorFile;
if ([NSFileManager defaultManager] setAttributes:attrs ofItemAtPath:librarySQLGZipPath error: &errorFile])
{
NSLog(@"Set …Run Code Online (Sandbox Code Playgroud) 我开始iPhone编程,我有一个很大的问题,我无法解决.
所以,我有一个UIWebview,我可以加载HTTP网址没有问题:
NSString urlAdress;
urlAdress = @"http://servername";
NSURL *url = [NSURL URLWithString:urlAdress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestObj];
Run Code Online (Sandbox Code Playgroud)
它的工作,我的页面加载在我的UIwebView中,但当我替换:
urlAdress = @"http://servername";
Run Code Online (Sandbox Code Playgroud)
通过
urlAdress = @"https://servername";
Run Code Online (Sandbox Code Playgroud)
我有空白屏幕.
我读了它的正常,但有没有简单的方法来加载我的webview中的https网址?
我读过ASIHTTPRequest但我没有到达实施它.
我只想加载HTTPS URL.
我正在处理一个问题,我必须在队列中下载大约10个不同的大文件,我需要显示一个进度条,指示总传输的状态.我在iOS4中使用ASIHTTPRequest工作得很好,但我正在尝试转换到AFNetworking,因为ASIHTTPRequest在iOS5中存在问题而不再维护.
我知道您可以使用AFHTTPRequestOperation的downloadProgressBlock报告各个请求的进度,但我似乎找不到报告将在同一个NSOperationQueue上执行的多个请求的整体进度的方法.
有什么建议?谢谢!
每当我使用ASIHTTPRequest进行webservice调用时,我都会随机获得以下崩溃:
autorelease pool page 0x9418000 corrupted
magic a1a1a100 4f545541 454c4552 21455341
pthread 0xb0103000
Run Code Online (Sandbox Code Playgroud)
我的代码是ARC-fied,并使用-fno-objc-arc作为ASIHTTP类的.m文件.
有没有人对此有所了解,或者之前有人遇到过这类问题吗?提前致谢!
asihttprequest ×10
ios ×7
iphone ×6
objective-c ×4
afnetworking ×2
uiwebview ×2
comparison ×1
https ×1
json ×1
nsstream ×1
php ×1
rest ×1
sdk ×1
soap ×1
url ×1
warnings ×1
xcode ×1
xml ×1