zoukankan      html  css  js  c++  java
  • iOS.访问 Web Service.同步GET请求方法

    1、字符串转换为URL字符串NSString分类

    #import <Foundation/Foundation.h>
    
    @interface NSString (URLEncoding)
    
    
    -(NSString *)URLEncodedString;
    -(NSString *)URLDecodedString;
    
    
    @end
    #import "T20140628013418NSString+URLEncoding.h"
    
    @implementation NSString (URLEncoding)
    
    
    - (NSString *)URLEncodedString
    {
        NSString *result = ( NSString *)
        CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                                  (CFStringRef)self,
                                                                  NULL,
                                                                  CFSTR("!*();+$,%#[] "),
                                                                  kCFStringEncodingUTF8));
        return result;
    }
    
    - (NSString*)URLDecodedString
    {
        NSString *result = ( NSString *)
        CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
                                                                                  (CFStringRef)self,
                                                                                  CFSTR(""),
                                                                                  kCFStringEncodingUTF8));
        return result;
    }
    
    
    @end

    2、错误提示NSNumber分类

    #import <Foundation/Foundation.h>
    
    @interface NSNumber (Message)
    
    
    -(NSString *)errorMessage;
    
    @end
    #import "T20140628013418NSNumber+Message.h"
    
    @implementation NSNumber (Message)
    
    -(NSString *)errorMessage
    {
        /*  -7 没有数据。
         *  -6 日期没有输入。
         *  -5 内容没有输入。
         *  -4 ID没有输入。
         *  -3 据访问失败。
         *    -2 您的账号最多能插入10条数据。
         *    -1 用户不存在。
         *    0 查询成功
         *    1 修改成功
         */
        
        NSString *errorStr = @"";
        
        switch ([self integerValue]) {
            case -7:
                errorStr = @"没有数据。";
                break;
            case -6:
                errorStr = @"日期没有输入。";
                break;
            case -5:
                errorStr = @"内容没有输入。";
                break;
            case -4:
                errorStr = @"ID没有输入。";
                break;
            case -3:
                errorStr = @"数据访问失败。";
                break;
            case -2:
                errorStr = @"您的账号最多能插入10条数据。";
                break;
            case -1:
                errorStr = @"用户不存在";
            default:
                break;
        }
        
        return errorStr;
    }
    @end

    3、获得url对象

        NSString *strURL = [[NSString alloc] initWithFormat:@"http://127.0.0.1:8080/xxx/test01.html"];
        NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];

     

    4、同步get请求

    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
        NSData *data  = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

    5、-(NSMutableArray *)findAll

    -(NSMutableArray *)findAll
    {
        NSString *strURL = [[NSString alloc] initWithFormat:@"http://127.0.0.1:8080/kujizu/test01.html"];
        NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
        NSData *data  = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
        
        if (data == nil) {
            
            self.listData = [[NSMutableArray alloc] init];
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"错误信息" message:@"没有数据。" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alertView show];
        }else{
            
            NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            
            NSNumber *resultCodeObj = [resDict objectForKey:@"ResultCode"];
            if ([resultCodeObj integerValue] >=0){
                
                self.listData = [resDict objectForKey:@"Record"];
            } else {
                
                NSString *errorStr = [resultCodeObj errorMessage];
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"错误信息" message:errorStr delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
                [alertView show];
            }
        }
        return self.listData;
    }
  • 相关阅读:
    sinaapp+wordpress
    用JavaScript实现本地缓存
    Javascript的IE和Firefox(火狐)兼容性
    150个javascript特效
    学习Javascript闭包(Closure)
    JS bingo卡片
    Response.Write详细介绍[转]
    JS实现鼠标经过时背景色缓慢改变
    为什么引用不了App_Code里的类
    SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
  • 原文地址:https://www.cnblogs.com/cqchen/p/3814017.html
Copyright © 2011-2022 走看看