标签: asihttprequest

修复警告"在此块中强烈捕获[某个对象]可能会导致启用ARC的代码中的保留周期"

在启用ARC的代码中,如何在使用基于块的API时修复有关潜在保留周期的警告?

警告:
Capturing 'request' strongly in this block is likely to lead to a retain cycle

由这段代码生成:

ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:...

[request setCompletionBlock:^{
    NSDictionary *jsonDictionary = [[CJSONDeserializer deserializer] deserialize:request.rawResponseData error:nil];
    // ...
    }];
Run Code Online (Sandbox Code Playgroud)

警告与request块内对象的使用相关联.

cocoa cocoa-touch retain asihttprequest automatic-ref-counting

140
推荐指数
4
解决办法
5万
查看次数

AFNetworking缺少哪些主要的ASIHTTPRequest功能?

由于最近停止了ASIHTTPRequest的工作,似乎注意力转向AFNetworking.

但是,我还没有找到两个库的功能的良好比较,所以我不知道如果/当我切换时我可能会失去什么.

到目前为止我发现的主要差异是:

  1. AFNetworking的代码大小要小得多(这很好)
  2. AFNetworking正在迅速改进(因此可能尚未成熟,可能还没有稳定的API?)
  3. 两者似乎都有缓存,虽然我已经看到提示,因为AFNetworking使用NSURLConnection它不会缓存超过50K的对象
  4. ASIHTTPRequest对手动和自动(PAC)http代理有很好的支持; 我无法找到有关AFNetworking对代理服务器支持程度的任何信息
  5. AFNetworking需要iOS 4+,而ASIHTTPRequest可以直接使用iOS 2(对我来说这不是一个问题,但对某些人来说这是一个问题)
  6. AFNetworking(还)没有内置的持久缓存,但是有一个持久缓存,它有一个挂起的拉取请求:https://github.com/gowalla/AFNetworking/pull/25

有没有人看到两个图书馆的任何良好比较或从一个图书馆转换到另一个图书馆的任何记录经验?

iphone asihttprequest ipad ios afnetworking

93
推荐指数
2
解决办法
2万
查看次数

提出许多网络请求的iOS应用程序的最佳架构?

我正在重新思考我正在开发的大型应用程序的请求架构的方法.我目前正在使用ASIHTTPRequest实际发出请求,但由于在不同的视图控制器中采取了许多不同的操作,我需要许多不同类型的请求,因此我正在尝试找出组织这些请求的最佳系统.

我正在构建由应用代表保留的单身"请求者",并坐在那里听取需要发出请求信号的NSNotifications; 他们发出请求,听取响应,并发送带有响应数据的新NSNotification.这解决了我的大多数问题,但没有优雅地处理失败的请求或同时请求同一个单一请求者.

任何人都有成功设计一个清晰的OO架构,在iOS应用程序中制作许多不同类型的请求?

iphone cocoa-touch network-programming objective-c asihttprequest

49
推荐指数
1
解决办法
2万
查看次数

Asihttprequest 61错误

我正在使用ASIhttprequest许多项目,但最近每个新项目,当我尝试添加ASIhttprequest类时,我在使用类之前得到以下错误,就在我尝试导入它们时:

使用配置Debug构建项目finjan的finjan

Ld build/Debug-iphonesimulator/finjan.app/finjan normal i386
cd /Users/Apple/Desktop/application/finjan
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk -L/Users/Apple/Desktop/application/finjan/build/Debug-iphonesimulator -F/Users/Apple/Desktop/application/finjan/build/Debug-iphonesimulator -filelist /Users/Apple/Desktop/application/finjan/build/finjan.build/Debug-iphonesimulator/finjan.build/Objects-normal/i386/finjan.LinkFileList -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -framework AudioToolbox -framework AVFoundation -o /Users/Apple/Desktop/application/finjan/build/Debug-iphonesimulator/finjan.app/finjan

Undefined symbols:
  "_CFHTTPAuthenticationIsValid", referenced from:
      -[ASIHTTPRequest attemptToApplyProxyCredentialsAndResume] in ASIHTTPRequest.o
      -[ASIHTTPRequest attemptToApplyCredentialsAndResume] in ASIHTTPRequest.o
  "_CFHTTPMessageApplyCredentialDictionary", referenced from:
      -[ASIHTTPRequest applyAuthorizationHeader] in ASIHTTPRequest.o
      -[ASIHTTPRequest applyAuthorizationHeader] in ASIHTTPRequest.o
      -[ASIHTTPRequest applyProxyCredentials:] in ASIHTTPRequest.o
      -[ASIHTTPRequest applyCredentials:] in ASIHTTPRequest.o
  "_CFHTTPMessageIsHeaderComplete", referenced from:
      -[ASIHTTPRequest readResponseHeaders] in ASIHTTPRequest.o
  "_kCFStreamPropertyHTTPSProxyPort", …
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c asihttprequest

41
推荐指数
2
解决办法
2万
查看次数

UILabel文本未更新

我无法更改UILabel文本.viewDidLoad中UILabel的代码是:

startLabel=[[UILabel alloc] initWithFrame:CGRectMake(75, 395, 200, 30)];
startLabel.text=@"Recording Sound ...";
startLabel.backgroundColor=[UIColor clearColor];
startLabel.textColor=[UIColor whiteColor];
startLabel.font=[UIFont boldSystemFontOfSize:17];

[self.view addSubview:startLabel];
Run Code Online (Sandbox Code Playgroud)

稍后,如果我想使用以下代码更改文本的标签,则不会更改应用程序:

startLabel.text=@"Searching Database ...";
Run Code Online (Sandbox Code Playgroud)

要么

[startLabel setText:@"Searching Database ..."];
Run Code Online (Sandbox Code Playgroud)

UILabel不是空的,我在调试过程中打印出来,它显示:

(gdb) po startLabel
<UILabel: 0x2c1a30; frame = (75 395; 200 30); text = 'Searching Database ...'; 
clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x2ae8f0>>
Run Code Online (Sandbox Code Playgroud)

因此,标签的文本在UILabel内部发生变化,但未在屏幕上更新.

有谁可以让我知道我在这里失踪了什么?谢谢.

编辑1:我试过performSelectorOnMainThread:- 没有为我工作.编辑2:我正在使用AVFoundationASIHTTP类来录制声音并在此处上传录制的文件.没有其他的.没有使用任何线程.

uilabel asihttprequest ios

36
推荐指数
3
解决办法
3万
查看次数

在iphone应用程序中使用自签名证书

我为这个冗长的问题提前道歉.我遇到了自签名SSL证书的问题,我想记录到目前为止我尝试过的所有内容.

我正在开发一个与REST服务通信的应用程序.测试服务器使用自签名的ssl证书,我可以在我的计算机上安装该证书.这是一个需要密码才能安装的.p12文件.如果未安装此证书,则对服务器的所有请求都将返回403.

.p12在Keychain中安装三个项目,一个"根证书颁发机构",一个由"根证书颁发机构"颁发的"测试用户"证书,以及一个与"测试用户"证书相关联的私钥.

我通过给自己发送.p12文件,在iPad上安装了这个证书.我点击附件,输入密码,现在我可以在Safari中访问该网站.不幸的是,由于应用程序沙盒,这还不足以让我的应用程序与REST服务进行通信.

我正在使用ASIHTTPRequest来完成与我的应用程序中的REST服务的所有通信.每个请求都是ASIHTTPRequest的子类.我发现我必须做的第一件事就是调用,[self setValidatesSecureCertificate:NO];以便它甚至可以尝试SSL连接到服务器.如果这就是我所做的,我会从服务中获得403错误代码.

现在我似乎无法弄清楚如何获得使用证书的请求.我已经尝试将这三个项目导出为单独的.cer文件,包括它们在项目中,并使用以下代码将它们添加到请求中:

NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cert" ofType:@"cer"]];
SecCertificateRef cert = SecCertificateCreateWithData(NULL, (CFDataRef)data);
...
[self setClientCertificates:[NSArray arrayWithObjects:(id)cert, ..., nil]];
Run Code Online (Sandbox Code Playgroud)

虽然使用这种方法代码执行没有问题,但我仍然得到403错误.

我甚至尝试在我的应用程序中包含.p12文件并使用相同的代码导入它.这会失败,因为SecCertificateCreateWithData返回nil.

我承认我真的不知道我在这里做什么.这一切都在我头上,任何人都可以给我的任何帮助将不胜感激.

ssl ssl-certificate asihttprequest nsurlrequest ios

34
推荐指数
1
解决办法
3万
查看次数

ASIHTTPRequest与AFNetworking框架

我即将开发一个iPad应用程序,它有大量的后台线程网络调用.

我想知道哪一个更好?ASIHTTPRequest仍然有效,但没有维护.然而,很少有消息称AFNetworking框架会产生许多复杂情况.

iphone objective-c asihttprequest ios afnetworking

30
推荐指数
1
解决办法
1万
查看次数

ASIHTTPRequest:https with SSL

如何使用SSL实现https连接ASIHTTPRequest?有一些特殊的步骤吗?这可能与这无关ASIHTTPRequest吗?我认为它只能用于服务器端.有人可以发布链接或描述如何建立https连接的过程吗?

这是我到目前为止发现的:

我在某处读到你需要一个"真正的"SSL证书,而不是一个自签名证书.我认为还没有支持所有SSL证书提供商(请阅读本文).

您还必须遵守美国政府对CCATS审核和批准的要求.(见这里).

iphone ssl https objective-c asihttprequest

26
推荐指数
1
解决办法
1万
查看次数

AFNetworking是否有后台支持?

我正在调查AFNetworking作为替代品ASIHTTPRequest,并注意到它是否支持后台下载/上传完全缺乏信息.

使用ASIHTTPReqeust对象,您所要做的就是调用[request setShouldContinueWhenAppEntersBackground:YES],请求将在后台继续.这有什么支持AFNetworking吗?

iphone asihttprequest ios afnetworking

26
推荐指数
1
解决办法
1万
查看次数

AFNetworking - 如何在超时的情况下设置要重试的请求?

我最近从ASIHTTPRequest迁移到AFNetworking,这非常棒.但是,我连接的服务器有一些问题,有时会导致我的请求超时.使用ASIHTTPRequest时,可以使用以下选择器在超时时为请求设置重试计数

-setNumberOfTimesToRetryOnTimeout:
Run Code Online (Sandbox Code Playgroud)

这篇文章可以进一步引用,可以重试ASIHTTPRequest吗?

如果你不熟悉这就是AFNetworking https://github.com/AFNetworking/AFNetworking#readme

我无法在AFNetworking中找到等效的api,是否有人找到了在使用AFNetworking超时的情况下重试网络请求的解决方案?

iphone asihttprequest ipad ios afnetworking

23
推荐指数
1
解决办法
2万
查看次数