HTTP POST请求并将请求参数设置成请求体添加到请求中

- (void)post:(NSString *)URL param:(NSDictionary *)param finishBlock:(void (^) (NSURLResponse *response, NSData *data, NSError *connectionError)) block {
    //网络请求字符串
    NSString *urlString = @"";
    //UTF-8转码
    NSString *urlStr = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    //把传进来的URL字符串变为URL地址
    NSURL *url = [NSURL URLWithString:urlStr];
    //请求初始化
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20];
    //解析请求参数,用NSDictionary来存参数,通过自定义的函数把它解析成post格式的字符串
    NSString *parseParam = [self setDictionaryToString:param];
    //将字符串转化成data数据
    NSData *postData = [parseParam dataUsingEncoding:NSUTF8StringEncoding];
    //设置请求体
    [request setHTTPBody:postData];
    //设置请求方法
    [request setHTTPMethod:@"POST"];
    //创建一个新的队列
    NSOperationQueue *queue = [NSOperationQueue new];
    //发送异步请求,请求完以后返回的数据,通过completionHandler参数来调用
    [NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:block];
}

//字典转字符串
- (NSString *)setDictionaryToString:(NSDictionary *)dic {

    NSString *keyValueFormat;
    NSMutableString *result = [NSMutableString new];
    //实例化一个key枚举器用来存放dictionary的key
    NSEnumerator *keyEnum = [dic keyEnumerator];
    id key;
    while (key = [keyEnum nextObject]) {
        keyValueFormat = [NSString stringWithFormat:@"%@=%@&",key,[dic valueForKey:key]];
        [result appendString:keyValueFormat];
    }
    return result;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值