我正在尝试.cer在我的iOS应用中使用自签名证书.我按照这个很好的教程:http:
//initwithfunk.com/blog/2014/03/12/afnetworking-ssl-pinning-with-self-signed-certificates/
我添加了我的.cer文件.并初始化我的AFHTTPRequestOperationManager:
self.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
self.securityPolicy.allowInvalidCertificates = YES;
Run Code Online (Sandbox Code Playgroud)
但我总是得到-1012错误:
错误无法完成操作.(NSURLErrorDomain错误-1012.)
我检查了+ (NSArray *)defaultPinnedCertificates它正确加载我的.cer.
但evaluateServerTrust:forDomain:总是返回NO:
return trustedCertificateCount == [serverCertificates count];
[serverCertificates count]= 2且trustedCertificateCount= 1.
这意味着什么?你能帮我吗?
根据谷歌的文档,信息窗口是在我得到图像之前呈现的。
Note: The info window is rendered as an image each time it is displayed on the map.
This means that any changes to its properties while it is active will not be immediately visible.
The contents of the info window will be refreshed the next time that it is displayed.
Run Code Online (Sandbox Code Playgroud)
是否有人在使用 AFNetworking 的图像缓存并成功更新信息窗口视图而不会污染标记的片段?我已经搜索过,但找不到适合我的场景的任何解决方案。我在标记的片段中有地址和其他一些信息,所以我不能将它用作标志。
顺便说一句,我正在按照Google 的本教程从 xib 创建信息窗口
参考:
如何强制刷新 Google Maps iOS SDK 中标记信息窗口的内容
https://developers.google.com/maps/documentation/ios/marker#info_windows
AFNetworking的缓存机制对我不起作用,我有500ko的大尺寸图像,我想缓存它.但每次我关闭应用程序并再次打开它时,我必须等待20秒才能加载图像,因此缓存系统不能正常运行,代码如下:
我试过了 :
[imageView setImageWithURL:[NSURL URLWithString:imageURL]
placeholderImage:[UIImage imageNamed:@"placeholder"]];
Run Code Online (Sandbox Code Playgroud)
然后尝试:
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:imageURL]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[imageView setImageWithURLRequest:imageRequest
placeholderImage:[UIImage imageNamed:@"placeholder"]
success:nil
failure:nil];
Run Code Online (Sandbox Code Playgroud) 所以我想使用AFNetworking V2.0来获取NSURLSession的GET请求(iOS7的新API)
到目前为止,我已经得到了这个 - 但这是正确的方法吗?
NSString *tempURL =[NSString stringWithString:url];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager GET:tempURL parameters:params success:^(NSURLSessionDataTask *task, id responseObject)
{
//Working
}failure:^(NSURLSessionDataTask *task, NSError *error)
{
//Failed!!
}];
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?
我把头发拉过来,似乎无法弄清楚为什么AFNetworking和Xcode 5似乎没有合作.
我正在使用这里看到的教程,出于某种原因,每当我去构建实际的程序时,它告诉我:
没有可见的
@interface for 'UIImageView' declares the selector 'setImageWithURL:setPlaceholderImage:'
Run Code Online (Sandbox Code Playgroud)
现在,我已经进口AFNetworking.h到我的前缀的文件,我已经添加MobileCoreServices和SystemConfiguration太.我不知道怎么从这里开始.
我假设我收到的错误是因为Xcode没有正确链接到AFNetworking库.但是我该如何解决这个问题呢?
使用AFNetworking 2.0的方法setImageWithUrl,我在位于UITableViewCell的imageView中设置了一个图像.首次下载然后设置显示的图像时,它可以正常工作.但是,如果图像在设置时在本地可用(已缓存),则在显示之前会有快速白色闪烁.
你知道怎么避免这个吗?
重现步骤:
设置图像的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
myCell *cell = (myCell *)[tableView dequeueReusableCellWithIdentifier:@"imageCell"];
[cell.myImageView setImageWithURLRequest:[NSURLRequest requestWithURL:myImageUrl] placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
cell.myImageView.image = image;
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {
NSLog(@"Failed");
}];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
Run Code Online (Sandbox Code Playgroud) 我基本上构建我的应用程序,如AFNetworking示例,您可以从AFNetworking 2.0 GitHub下载.但是,在过去使用AFNetworking 1.0制作客户端网络扩展类时,我必须指定initWithBaseURL可以设置可接受的内容类型.
在2.0中,似乎在示例中不再具有此实例方法.因此,当我使用Web服务时,我收到错误[1] (null) @"NSLocalizedDescription" : @"Request failed: unacceptable content-type: text/html"
我尝试了不使用AFClient类的方法,它可以工作,但我想像示例一样设置它,所以我可以有更好的代码重用.
我在哪里可以设置contentType?此外,在2.0的示例中,它们具有块调用
+ (NSURLSessionDataTask *)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block {之前的返回类型void.返回的目的是NSURLSessionDataTask什么?
我曾经多次使用AFNetworking为iOS编码遇到过这个问题,但直到现在我才找到了解决方法.
基本上,我想进行一个API调用,它将一个值返回给我想要在调用的完成块中使用的主线程.
更具体地说,我在我的数据库中创建了初始"推文" 之后,我有一个帖子对象(比如发布推文或其他内容),它与我想要POST的#tags和@tags相关联.我需要它在方法的完成块中,因为我需要使用post_id作为发布#tags和@tags的参数:
-(void)postToDB
{
_postId = [[[ReelRailsAFNClient sharedClient] createPostWithParameters:
@{@"user_id":_userId,
@"caption":_caption}
CompletionBlock:^(NSError *error) {
if(!error){
[self postHashtagsToDB:_postId];
[self postAttagsToDB:_postId];
}
}] postId];
}
Run Code Online (Sandbox Code Playgroud)
在postHashtagsToDB和postAttagsToDB的主体内部,_postId的计算结果为(null).如何捕捉和注入到帖子ID postHashtagsToDB和postATtagsToDB?
谢谢,
JA
编辑:
这是我对createPostWithParameters的方法定义:CompletionBLock:
- (Post*) createPostWithParameters:(NSDictionary*)parameters
CompletionBlock:(AFNClientErrorCompletionBlock)block{
Post *post = [[Post alloc] init];
[self POST:@"posts" parameters:parameters
success:^(NSURLSessionDataTask *task, id responseObject){
NSLog(@"Post Created Successfully");
post = responseObject;
block(nil);
}failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"Post Not Created");
block(error);
}];
return post;
}
Run Code Online (Sandbox Code Playgroud) 必须发送此JSON字符串:
{
"dashboard": "compact",
"theme": "dark",
"show_side_bar": "yes"
}
Run Code Online (Sandbox Code Playgroud)
以这种格式使用GET方法的REST API (因为服务器使用此PHP代码检索数据$_GET["setting"])AFHTTPRequestOperationManager,使得等效的URL变为:
http://www.examplesite.com/api/change_setting?setting={ "dashboard" : "compact", "theme" : "dark", "show_side_bar" : "yes" }
当我NSDictionary在AFHTTPRequestOperationManager's中创建一个参数时GET:parameters:success:failure:,将url key参数添加到参数字典本身,如下所示:
{
"setting": {
"dashboard": "compact",
"theme": "dark",
"show_side_bar": "yes"
}
}
Run Code Online (Sandbox Code Playgroud)
总之仅 JSON字符串必须被封装设置参数NOT作为对象设定在一个JSON字符串.
编辑:这是代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{
kSettingDashboard: @"compact",
kSettingTheme: @"dark",
kSettingShowSideBar: @"yes"
};
[manager GET:kURLChangeSetting
parameters:[NSDictionary dictionaryWithObject:parameters …Run Code Online (Sandbox Code Playgroud) 我想尝试在以下API中使用post参数,但参数未正确传递,并且收到的响应会显示需要数据的消息.所以任何人都可以帮助解决这个问题.
我的网址是
forapp.com/api/getContacts.php?data= [{ "Name": "ABC", "手机": "1234567890"},{ "名": "凯特·贝尔", "手机": "9925992599"}]
所以我怎么能把这种类型的请求传递给api
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @{@"name": @"hello",
@"phone": @"1234567890"};
NSLog(@"Dict %@",params);
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
[manager POST:@"http://forapp.com/api/getContacts.php" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Run Code Online (Sandbox Code Playgroud) afnetworking-2 ×10
ios ×8
objective-c ×6
afnetworking ×2
caching ×2
json ×2
google-maps ×1
image ×1
rest ×1
ssl ×1
url-encoding ×1
xcode ×1