OC_NSURLConnection

/*

准备:

举例 API点击打开链接


1.通过API测试工具

2.调用借口

3.用JOSN解释,调用接口的返回值

 

*/

//在Main.storyboard添加 Button、 Text View、Image View

//点击如下下图的第二个图标,然后点击button,按住右键拖向代码中



/*

创建一个Cocoa Touch Class


*/


#import <Foundation/Foundation.h>

@interface WeiBoModel : NSObject

@property (nonatomic,strong)NSArray  *statuses;
@property (nonatomic,strong)NSNumber *hasvisible;
@property (nonatomic,strong)NSNumber *previous_cursor;
@property (nonatomic,strong)NSNumber *next_cursor;
@property (nonatomic,strong)NSNumber *total_number;
@property (nonatomic,strong)NSNumber *interval;



-(id)initWithDictionary:(NSDictionary *)dictionary;

@end

#import "WeiBoModel.h"

@implementation WeiBoModel

-(id)initWithDictionary:(NSDictionary *)dictionary{

    if (self=[super init]) {
        [self setValuesForKeysWithDictionary:dictionary];
    }
    return self;
}


@end



#import "ViewController.h"

#import "WeiBoModel.h"
@interface ViewController ()<NSURLConnectionDataDelegate>
{
    NSMutableData *_mDataGet;
    NSURLConnection *_connectionGet;
    NSURLConnection *_connectionPost;
    NSMutableData *_mDataPost;
}
@property (weak, nonatomic) IBOutlet UIImageView *imgView;


@property (weak, nonatomic) IBOutlet UITextView *textView;


@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
}


//同步get

- (IBAction)synchronizedGet:(UIButton *)sender {
    
    NSLog(@"同步get");
    NSString *urlString =@"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00_cme_C1a9suDcc0658a67fbHiNZC";
    
    
    //编码
    urlString =[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet  URLQueryAllowedCharacterSet]];
    
    NSURL *url =[NSURL URLWithString:urlString];
    
    //创建一个url请求
    NSURLRequest  *request =[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
    
    //创建一个url响应
    NSURLResponse *httpURLResponse;
    
    NSError *error;
    
    //使用NSURLConnection类,和服务器连接,这个是同步过程
    NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:&httpURLResponse error:&error];
    
    //JSON数据格式解析,利用系统提供的API进行JSON数据解析
    NSDictionary *dictionary =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
    
    //NSLog(@"dictionary =%@",dictionary);
    
    WeiBoModel *model =[[WeiBoModel alloc] initWithDictionary:dictionary];
    
    NSString *text = [model.statuses[0]objectForKey:@"text"];
    
    
    
    //    NSDictionary *dic =[dictionary[@"statuses"]objectAtIndex:0];
    //    NSString *text =dic[@"text"];
    //    NSLog(@"%@",text);
    
    self.textView.text =  text;
    
    NSLog(@"%@",text);
    
    
    
    
    
    
}

//同步图片get


- (IBAction)imgView:(UIButton *)sender {
    
    NSString *urlString =@"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00_cme_C1a9suDcc0658a67fbHiNZC";
    
    
    //编码
    urlString =[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet  URLQueryAllowedCharacterSet]];
    
    NSURL *url =[NSURL URLWithString:urlString];
    
    //创建一个url请求
    NSURLRequest  *request =[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
    
    
    //[NSURLConnection connectionWithRequest:request delegate:self];
    
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        NSDictionary *dicionary =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
        
        WeiBoModel *modle =[[WeiBoModel alloc]initWithDictionary:dicionary];
        
        NSArray *array =[modle.statuses[0]objectForKey:@"pic_urls"];
        
        
        if (array.count>0) {
            NSArray *urlString =[array[0]objectForKey:@"thumbnail_pic"];
            NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
            self.imgView.image =[UIImage imageWithData:data];
            NSLog(@"image");
            
        }else{
            NSLog(@"404");
            
        }
        
        
    }];
    
}

//异步get

- (IBAction)AsynchronizedGet:(UIButton *)sender {
    
    
    NSString *urlString =@"https://api.weibo.com/2/statuses/public_timeline.json?access_token=2.00_cme_C1a9suDcc0658a67fbHiNZC";
    
    
    //编码
    urlString =[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet  URLQueryAllowedCharacterSet]];
    
    NSURL *url =[NSURL URLWithString:urlString];
    
    //创建一个url请求
    NSURLRequest  *request =[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
    
    
    //[NSURLConnection connectionWithRequest:request delegate:self];
    
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        NSDictionary *dicionary =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
        
        WeiBoModel *modle =[[WeiBoModel alloc]initWithDictionary:dicionary];
        
        
        NSString *text =[modle.statuses[0]objectForKey:@"text"];
        
        NSArray *array =[modle.statuses[0]objectForKey:@"pic_urls"];

        
        dispatch_async(dispatch_get_main_queue(), ^{
            self.textView.text=text;
            
            //异步get图片
            if (array.count>0) {
                NSArray *urlString =[array[0]objectForKey:@"thumbnail_pic"];
                NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
                self.imgView.image =[UIImage imageWithData:data];
                NSLog(@"image");
                
            }else{
                NSLog(@"404");
                
            }

            
            
            
        });
        
    }];
    
    
    
}

//同步post

- (IBAction)synchronizedPost:(UIButton *)sender {
    
    NSString *urlString =@"https://api.weibo.com/2/statuses/update.json";
    
    
    //编码
    urlString =[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet  URLQueryAllowedCharacterSet]];
    
    NSURL *url =[NSURL URLWithString:urlString];
    
    NSMutableURLRequest *mRequest =[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
    
    NSString *bodyString= @"%E5%98%BF%E5%98%BF&access_token=2.00_cme_C1a9suDcc0658a67fbHiNZC";
    
    NSData *data =[bodyString dataUsingEncoding:NSUTF8StringEncoding];
    
    
    //post 设置他的方法体
    [mRequest setHTTPMethod:@"POST"];
    
    [mRequest setHTTPBody:data];
    
    NSData *requestData=[NSURLConnection sendSynchronousRequest:mRequest returningResponse:nil error:nil];
    
    NSDictionary *dictonray =[NSJSONSerialization JSONObjectWithData:requestData options:NSJSONReadingAllowFragments error:nil];
    NSLog(@"%@",dictonray);
    
    
}

//异步post

- (IBAction)AsynchronizedPost:(UIButton *)sender {
    
    
    
    
    NSString *urlString =@"https://api.weibo.com/2/statuses/update.json";
    
    
    //字符串编码
    urlString =[urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet  URLQueryAllowedCharacterSet]];

    NSURL *url =[NSURL URLWithString:urlString];
    
    NSMutableURLRequest *mRequest =[NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60];
    
    NSString *bodyString= @"%E5%98%BF%E5%98%BF&access_token=2.00_cme_C1a9suDcc0658a67fbHiNZC";
    
    NSData *data =[bodyString dataUsingEncoding:NSUTF8StringEncoding];

    [mRequest setHTTPMethod:@"POST"];
    [mRequest setHTTPBody:data];

    _connectionPost=[NSURLConnection connectionWithRequest:mRequest delegate:self];
    
    
}

#pragma  mark --NSURLConnectionDataDelegate--
//服务器开始响应,准备向客户发送数据
-(void)connection:(NSURLConnection*) connection
didReceiveResponse:( NSURLResponse *)response{
    NSLog(@"服务器开始响应,准备向客户发送数据");
    _mDataGet =[NSMutableData data];

    if (connection== _connectionGet) {
        _mDataGet=[NSMutableData data];
    }
    if (connection ==_connectionPost) {
        _mDataPost =[NSMutableData data];
    }
}

//从服务器接收数据,并且此方法会执行多次
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
    NSLog(@"从服务器接收数据,并且此方法会执行多次");
    if (connection== _connectionGet) {
        [_mDataGet appendData:data ];
    }
    if (connection ==_connectionPost) {
        [_mDataPost appendData:data];
    }
    
}

//接收数据完成
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
    NSLog(@"接收数据完成");
    
    
    if (connection ==_connectionGet) {
        NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:_mDataGet options:NSJSONReadingAllowFragments error:nil];
        
        WeiBoModel *model= [[WeiBoModel alloc]initWithDictionary:dictionary];
        
        NSString *text =[model.statuses[0]objectForKey:@"text"];
        //更新UI需要回到主线程
        //self.textView.text =text;
        
        [self.textView performSelectorOnMainThread:@selector(setText:) withObject:text waitUntilDone:NO];
        
        //    dispatch_async(dispatch_get_main_queue(), ^{
        //        self.textView.text =text;
        //    })
        //
        

    }
    
    if (connection ==_connectionPost) {
        NSDictionary *dictionary =[NSJSONSerialization JSONObjectWithData:_mDataPost options:NSJSONReadingAllowFragments error:nil];
        NSLog(@"%@",dictionary);
    }
}







深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
【4层】3100平米综合办公楼毕业设计(含计算书、建筑结构图) 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值