iOS-GET请求详细操作-GET设置请求头

难得一次备注相当详细的原生GET网络请求操作,强迫症一样记录下来和大家分享… 也备复制用

-(void)getResult{

    _MB = [MBProgressHUD showHUDAddedTo:self.navigationController.view animated:YES];

    //接口路径
    NSString *path = @"http://a.apix.cn/apixlife/phone/phone";

    //路径-+参数
    NSString *pathWithPhoneNum = [NSString stringWithFormat:@"%@?phone=%@",path,_phoneNumFD.text];

    //中文编码
    NSString *urlPath = [pathWithPhoneNum stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

    //URL
    NSURL *phoneURL = [NSURL URLWithString:urlPath];

    //请求对象
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:phoneURL];

    //请求方式
    [request setHTTPMethod:@"GET"];

    //请求头
    [request setValue:@"92b5787ecd17417b718a2aaedc7e6ce8" forHTTPHeaderField:@"apix-key"];

    //网络配置
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

    //网络会话
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];

    //任务
    NSURLSessionDataTask *sessionTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        //回到主线程更新UI -> 撤销遮罩
        dispatch_async(dispatch_get_main_queue(), ^{
            [_MB hide:YES];
        });

        if (error) {
            NSLog(@"请求失败... %@",error);

            //提示用户请求失败!
            UIAlertController *AV = [UIAlertController alertControllerWithTitle:@"提示" message:@"抱歉,服务器错误,请稍后重试..." preferredStyle:UIAlertControllerStyleActionSheet];
            [AV addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                //点击OK,进行相应操作,可置nil
                NSLog(@"您点击了OK..");
            }]];
            [self presentViewController:AV animated:YES completion:nil];

        }else{
            //JSON 解析 苹果原生效率最高
            NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
            if ([[result objectForKey:@"message"] isEqualToString:@"success"]) {
                //获取数据->主线程更新UI
                dispatch_async(dispatch_get_main_queue(), ^{
                    NSDictionary *data = [result objectForKey:@"data"];
                    NSString *city = [data objectForKey:@"city"];
                    NSString *province = [data objectForKey:@"province"];
                    NSString *belong = [NSString stringWithFormat:@"%@ · %@",province,city];
                    [_resultLB setText:belong];
                });
            }else{
                NSLog(@"未查到信息....");
            }
            NSLog(@"请求成功... %@",result);
        }
    }];

    //开始任务
    [sessionTask resume];
}
时间: 2024-08-10 15:09:52

iOS-GET请求详细操作-GET设置请求头的相关文章

网络请求之GET、POST请求

网络请求-GET请求: 1,NSURL: 请求地址. 2,NSURLRequest :一个NSURLRequest对象就代表一个请求.它包括的信息有: 1)一个NSURL对象 GET请求,不须要写请求头.请求体,仅仅要告诉请求路径和请求參数就能够了. 2)请求方法 3)请求超时 3,NSMutableURLRequest : NSURLRequest的子类 4.NSURLConnection: 负责发送请求,建立client和server的连接. NSURLConnection的使用步骤 1,创

go中处理各种请求方式以及处理接口请求参数

话不多说直接上代码,解读内容全部在代码中 1.处理请求方式 package main import ( "fmt" "io/ioutil" "net/http" "net/url" "strings" ) //这个文件是对于net/http包的解读 func httpGet() { //func Get(url string) (resp *Response, err error) resp, err :=

iOS开发中如何设置请求超时时间

1 NSString *baseUrl; 2 NSURL *url = [NSURL URLWithString:[baseUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 3 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInter

iOS数据库操作之coredata详细操作步骤

CHENYILONG Blog iOS数据库操作之coredata详细操作步骤 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong iOS应用数据存取的常用方式 ? XML属性列表 -- PList? NSKeyedArchiver 归档 ?Preference(偏好设置) ? SQLite3? Core DataCore Data简介 ? Core Data 是iOS SDK 里的一个很强大的

Jquery.ajax 详细解释 通过Http请求加载远程数据

首先请看一个Jquery.ajax的例子 $.ajax({ type: "GET", url: "/api/SearchApi/GetResults", dataType: "json", data:{ filter: "test", pageNumber: 1, pageSize: 5 }, success: function(data){ // do something }, complete: function(XMLH

ASIHTTPRequest 设置请求头

先验知识——什么是ASIHTTPRequest? 使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中.ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互. 如何使用ASIHTTPRequest? 网上有很多专门介绍ASIHTTPRequest使用

Win10提示“没有关联的电子邮件程序来执行请求的操作”的解决方法

Win10提示“没有关联的电子邮件程序来执行请求的操作”怎么办?明明win10系统是由邮件程序的,为什么会提示需要安装电子邮件程序呢?这是因为我们没有设置邮件关联程序来打开邮件或者是邮件app功能没有打开导致的.下面小编就详细的为大家介绍Win10提示“没有关联的电子邮件程序来执行请求的操作”的解决方法. 一.检测邮件默认打开程序是否设置. 1.win+i打开设置. 2.打开应用. 3.查看默认应用下电子邮件默认应用是否被设置为邮件或者自己安装的电子邮件软件. 4.如果没有设置则点击下拉选择邮件

cmd 控制台 提示:请求的操作须要提升!

在windows7中想用route add 或相关route等命令须要以管理员身份执行,假设windows7以下没有以管理身份执行那么加入路由时候route命令后提示:请求的操作须要提升! windows7用管理员身份执行命令行窗体过程例如以下 vista和win7下执行cmd,加入自己定义路由route add总是无法成功加入,提示"The requested operation requires elevation.",是由于没有以管理员身份执行导致.能够找到cmd,点右键选择&q

iOS开发实践之GET和POST请求

iOS开发实践之GET和POST请求 GET和POST请求是HTTP请求方式中最最为常见的.在说请求方式之前先熟悉HTTP的通信过程: 请求 1.请求行 : 请求方法.请求路径.HTTP协议的版本 GET /MJServer/resources/images/1.jpg HTTP/1.1 2.请求头 : 客户端的一些描述信息 Host: 192.168.1.111:8080 // 客户端想访问的服务器主机地址 User-Agent: Mozilla/5.0 (Macintosh; Intel M