zoukankan      html  css  js  c++  java
  • iOS之ASIHttp简单的网络请求实现

    描述:

    ASIHttpRequest是应用第三方库的方法,利用代码快,减少代码量,提高效率 准备工作:

    一、导入第三方库ASIHttpRequest

    二、会报很多的错,原因有两个,一个是要导入Xcode中自带的四个文件,一个是他没有使用自动引用计数 

    三、解决方案 1.导入四个系统文件,分别是 MobileCoreServices.framework SystemConfiguration.framework 

    CFNetwork.framework libz.1.2.5.dylib 2.手动关掉自动引用计数 在工程的buide phase 中的 compile sources 

    ,ASIHhttp类型的,点击后面,添加上-fno-objc-arc 3.运行一遍,就不会报错了 实现异步post请求

    #import "ASIHTTPRequest.h"

    - (void)viewDidLoad

    {

     [self requestHttp];

     }

    -(void)requestHttp

    {   

        //1200792098331    

    //首先创建一个URL的对象

    NSURL * url = [NSURL urlWithString:[NSString stringWithFormat:@"http://api.kuaidi100.com/api?id=d6b9888b0da96f6b&com=%@&nu=%@&show=0&muti=1&order=desc&display=mobile",name]];

     

        NSURL * url =[NSURL URLWithString:[NSString stringWithFormat:@"http://api.kuaidi100.com/api?id=d6b9888b0da96f6b&com=%@&nu=%@&show=0&muti=1&order=desc&display=mobile"]];

         

        NSLog(@"url======%@",url);

    再创建一个请求对象

          ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:url];

       

    发送请求,并返回相应的JSon数据

         [request setCompletionBlock:

         ^{

             NSError * error = nil;

    //创建一个字典,接收返回的JSON数据

              

             NSDictionary * dictionary = [NSJSONSerialization JSONObjectWithData:request.responseData options:kNilOptions error:&error];

            NSLog(@"%@",dictionary);

      

    //创建一个数组,并将字典中的数据存放再数组中

             

      NSArray * arr = [dictionary objectForKey:@"data"];

     

    //将数组中的数据变例一下,并将变例后的数据存放在一个可变的数组中             

             for (NSDictionary * temp in arr)

             {

                 [self.array addObject:[NSString stringWithFormat:@"%@  %@",[temp objectForKey:@"time"],[temp objectForKey:@"context"]]];

             }

              

      //  将变例后的可变数组中的数据以字符串的形势赋给一个可变字符串对象,同时变例字符串

          

             for(NSString* temp in self.array)

             {      

                 [self.mutableString appendString:[NSString stringWithFormat:@"%@ ",temp]];


            NSLog(@" temp==== %@",temp);        

             }

              

        //我这里是将变例后的可变字符串赋给了一个lable

        

             self.jieGuoLale.text = self.mutableString;

          

             NSLog(@"self.jieGuoLale.text======%@",self.jieGuoLale.text);

              

         }];

      

    //如果请求发送失败,则调出警告框  

     

        [request setFailedBlock:

         ^{

              

             UIAlertView * alerteView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"问题警告:网络链接异常,请稍后再试" delegate:nil cancelButtonTitle:@"退出" otherButtonTitles: nil];

             [alerteView show];

              

         }];

    //发送一个异步请求


        [request startAsynchronous];


    }

  • 相关阅读:
    Object类中常见的方法,为什么wait notify会放在Object里边
    什么是Java序列化和反序列化,如何实现Java序列化
    hashCode和equals方法的区别与联系
    MVC设计思想
    dstat命令--检查linux系统性能
    linux mint19.1解决网易云音乐安装后打不开的问题
    linux 修改用户密码
    MD5加密
    xmpp
    cocoapods安装
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3230771.html
Copyright © 2011-2022 走看看