restful使用不同的http访问方法请求URL

来源:互联网 发布:网络推广平台又叫什么 编辑:程序博客网 时间:2024/05/16 07:59

restful是一种设计风格,知识提供一组设计原则和约束条件,主要用于客户端和服务器交互类的软件;

restful使用不同的http访问方法请求URL,由服务器端人员开发,前端人员使用,

http的请求方法有get ,post,head,put,delete,options,trace,connect,patch

get------获取数据----------datatask

post-------新增上传数据--------uploadtask

put-------修改上传数据------------uploadtask(需要用户名密码)

delete------删除数据--------------datatask(需要用户名密码)


__________________________________________________________________________


put  请求方法

- (void)uploadFile{

    //1.session

    NSURLSession *session =[NSURLSessionsharedSession];

    

    NSURL *url = [NSURLURLWithString:@"http://127.0.0.1/uploads/2.JPG"];

    

    //3请求

    NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];

    //put方式提交数据

    request.HTTPMethod = @"put";

    

    //Authorization: Basic YWRtaW46YWRtaW4=  -----   admin:admin

    [request setValue:[selfgetAuthWithUsername:@"admin"password:@"admin"]forHTTPHeaderField:@"Authorization"];

    

    //文件的URL

    NSURL *fileURL = [[NSBundlemainBundle] URLForResource:@"2.JPG"withExtension:nil];

    

    //2.创建上传任务

    NSURLSessionUploadTask *uploadTask = [sessionuploadTaskWithRequest:request fromFile:fileURL completionHandler:^(NSData *_Nullable data, NSURLResponse *_Nullable response, NSError * _Nullable error) {

        

        /*

         1.响应体

         2.响应头

         3.错误

         */

        

        NSLog(@"%@",data);

        NSLog(@"%@",response);

        

    }];

    

    //4 开启

    [uploadTask resume];

}


//拼接Authorization

//Authorization: Basic YWRtaW46YWRtaW4=  -----   admin:admin

-(NSString *)getAuthWithUsername:(NSString *)username password:(NSString *)password{

    //1.拼接用户名和密码 admin:admin

    NSString *str = [NSStringstringWithFormat:@"%@:%@",username,password];

    //YWRtaW46YWRtaW4=

    NSString *base64String = [selfbase64Encode:str];

    

    return [NSStringstringWithFormat:@"Basic %@",base64String];

}



//base64编码

-(NSString *)base64Encode:(NSString *)str{

    NSData *data = [strdataUsingEncoding:NSUTF8StringEncoding];

    return [database64EncodedStringWithOptions:0];

}



__________________________________________________________________________



delete请求方法


#import "ViewController.h"


@interface ViewController ()<NSURLSessionTaskDelegate>


@property(nonatomic,strong)NSURLSession *session;


@end


@implementation ViewController

//懒加载

-(NSURLSession *)session{

    if(!_session){

        NSURLSessionConfiguration *config = [NSURLSessionConfigurationdefaultSessionConfiguration];

        

        _session = [NSURLSessionsessionWithConfiguration:config delegate:selfdelegateQueue:[NSOperationQueuemainQueue]];

    }

    return_session;

}


- (void)viewDidLoad {

    [superviewDidLoad];

    [selfdeleteFile];

}


//删除文件 delete请求

-(void)deleteFile{

    NSURL *url = [NSURLURLWithString:@"http://127.0.0.1/uploads/2.JPG"];

    //设置请求--删除

    NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:url];

    //delete方式删除数据

    request.HTTPMethod = @"delete";

    

    //Authorization: Basic YWRtaW46YWRtaW4=  -----   admin:admin

    [request setValue:[selfgetAuthWithUsername:@"admin"password:@"admin"]forHTTPHeaderField:@"Authorization"];

    

    //datatask

    NSURLSessionDataTask *task = [self.sessiondataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        

        NSLog(@"%@",data);

        NSLog(@"%@",response);

        

    }];

    

    //开启操作

    [task resume];

}




0 0
原创粉丝点击