尝试进入AFNetworking代码会生成以下警告:
[Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
Run Code Online (Sandbox Code Playgroud)
当然,我无法调试代码.具体而言,我正在尝试调试UIImageView+AFNetworking看似不可能的类别.更改代码没有效果(尝试NSLog等),当尝试进入编译器时转到汇编代码并显示UIImageView+TVASTAFNetworking为代码库中不存在的类别名称.
使用Xcode 7. iOS 9和8. Cocoapods(无框架)
更新
我忘了提到Optimizer设置none为发布和调试配置,我实际上使用Debug配置.
更新2
Strip Debug Symbols 也关闭了.
我正在尝试AFNetworking的新版本2.0,我收到了上面的错误.知道为什么会这样吗?这是我的代码:
NSURL *URL = [NSURL URLWithString:kJSONlink];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
op.responseSerializer = [AFJSONResponseSerializer serializer];
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[[NSOperationQueue mainQueue] addOperation:op];
Run Code Online (Sandbox Code Playgroud)
我正在使用Xcode 5.0.
此外,这是错误消息:
Error: Error Domain=AFNetworkingErrorDomain Code=-1016 "Request failed: unacceptable content-type: text/html" UserInfo=0xda2e670 {NSErrorFailingURLKey=kJSONlink, AFNetworkingOperationFailingURLResponseErrorKey=<NSHTTPURLResponse: 0xda35180> { URL: kJSONlink } { status code: 200, headers {
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 2898;
"Content-Type" = …Run Code Online (Sandbox Code Playgroud) 我是obj-c的新手,并且一直在为我的一些项目使用asihttp.当在asihttp中做一个post请求时就这样做了.
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:height forKey:@"user[height]"];
[request setPostValue:weight forKey:@"user[weight]"];
[request setDelegate:self];
[request startAsynchronous];
Run Code Online (Sandbox Code Playgroud)
怎么会这样做AFNetworking的代码示例?
我已经得到了让Json getrequest在AFNetworking工作,但这个帖子请求给了我一些问题.提前感谢您的帮助.
我刚刚开始使用AFNetworking 2.0,我想知道如何将标头放入HTTP Get请求中.文档设置了这样的GET:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
[manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud)
但由于我们没有处理,NSURLRequests我不知道如何设置HTTP标头.
任何帮助,将不胜感激.
问候,
迈克
有没有办法使用Alamofire记录每个请求/响应(类似于AFNetworkActivityLogger)?
我知道Printable,DebugPrintable和Output(cURL),但它们并不是我想要的.
我有点混淆如何利用新的iOS 7 NSURLSession后台传输功能和AFNetworking(版本2和3).
我看到了WWDC 705 - What’s New in Foundation Networking会话,他们展示了应用程序终止甚至崩溃后继续下载的后台下载.
这是使用新的API application:handleEventsForBackgroundURLSession:completionHandler:以及会话的委托最终将获得回调并完成其任务的事实来完成的.
所以我想知道如何使用AFNetworking(如果可能的话)继续在后台下载.
问题是,AFNetworking方便地使用基于块的API来完成所有请求,但如果应用程序终止或崩溃,那些块也会消失.那么我该如何完成任务呢?
或者也许我在这里遗漏了一些东西......
让我解释一下我的意思:
例如,我的应用程序是一个照片消息应用程序,假设我有一个PhotoMessage代表一条消息的对象,并且此对象具有类似的属性
state - 描述照片下载的状态. resourcePath - 最终下载的照片文件的路径.因此,当我从服务器收到新消息时,我创建了一个新PhotoMessage对象,并开始下载其照片资源.
PhotoMessage *newPhotoMsg = [[PhotoMessage alloc] initWithInfoFromServer:info];
newPhotoMsg.state = kStateDownloading;
self.photoDownloadTask = [[BGSessionManager sharedManager] downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
NSURL *filePath = // some file url
return filePath;
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
if (!error) {
// update the PhotoMessage …Run Code Online (Sandbox Code Playgroud) 切换到AFNetworking 2.0时,AFHTTPClient已被AFHTTPRequestOperationManager/AFHTTPSessionManager替换(如迁移指南中所述).我在使用AFHTTPSessionManager时遇到的第一个问题是如何在故障块中检索响应的主体?
这是一个例子:
[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
// How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
// How to get the status code? response?
}];
Run Code Online (Sandbox Code Playgroud)
在成功块中,我想检索响应的状态代码.在故障块中,我想检索响应的状态代码和内容(在这种情况下,这是描述服务器端错误的JSON).
NSURLSessionDataTask具有NSURLResponse类型的响应属性,该属性没有statusCode字段.目前我能够像这样检索statusCode:
[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
// How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
DDLogError(@"Response statusCode: %i", response.statusCode);
}];
Run Code Online (Sandbox Code Playgroud)
但这看起来很丑陋.而且仍然无法想象响应的身体.
有什么建议?
显然没有AFImageRequestOperation,但只有AFImageResponseSerializer坦率地说我没有得到它或者我只是通过AFNetworking网站看起来太长了...用以前的AFNetworking下载图像就像一个魅力.我不想回到旧的AFnetworking,因为我通过新版本做了几乎所有的东西......任何人?
因此,我正在使用AFNetworking 2.0重写iOS 7的应用程序,我遇到了一次发送一批请求并跟踪其进度的问题.在旧的AFNetworking中有enqueueBatchOfHTTPRequestOperations:progressBlock:completionBlock:方法AFHTTPClient,这显然是重构的,我对如何排队多个请求有点困惑.
我创建了一个子类,AFHTTPSessionManager我正在使用POST:...和GET:...方法与服务器进行通信.但是我无法在代码和/或文档中找到任何可以同时将多个请求排入队列的内容AFHTTPClient.
我唯一能找到的是未记录的batchOfRequestOperations:progressBlock:completionBlock:方法AFURLConnectionOperation,但看起来像iOS 6的方式.
显然,我在新NSURLSession概念中遗漏了一些东西,我应该用它来批量请求或查看新的AFNetworking功能.希望有人能在这里帮助我走上正轨!
tl; dr:如何用我的AFHTTPSessionManager子类发送一批请求?
我有一个Web脚本,它通过HTTP POST请求接受JSON字符串作为输入.我遇到了几个相同的AFNetworking 1.x示例,有人可以指点我或给AFNetworking 2.0示例对带有格式化JSON作为输入的Web脚本执行HTTP POST请求吗?
谢谢
afnetworking-2 ×10
ios ×9
afnetworking ×5
objective-c ×4
iphone ×2
alamofire ×1
debugging ×1
http-post ×1
json ×1
xcode ×1
xcode7 ×1