1.ASIHTTPRequest一个简短的引论

github下载链接https://github.com/pokeb/asi-http-request

2.ASIHTTPRequest 对GET和POST请求简单封装

+(void)requestWithASIURL:(NSString *)urlString parmas:(NSMutableDictionary *)params httpMethod:(NSString *)method completeBlock:(RequestFinishBlock)block{
//处理GET请求
if ([[method uppercaseString] isEqualToString:@"GET"]) {
NSArray *keys=[params allKeys];
for (int i=0; i<keys.count; i++) {
NSString *key=[keys objectAtIndex:i];
NSString *values=[params valueForKey:key];
urlString= [urlString stringByAppendingFormat:@"&%@=%@",key,values];
} }
NSURL *url=[NSURL URLWithString:urlString];
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
[request setRequestMethod:method];
[request setTimeOutSeconds:10];
//处理POST请求
if ([[method uppercaseString] isEqualToString:@"POST"]) {
NSArray *keys=[params allKeys];
for (int i=0; i<keys.count; i++) {
NSString *key=[keys objectAtIndex:i];
NSString *value=[params objectForKey:key];
if ([value isKindOfClass:[UIImage class]]) {
// NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test4" ofType:@"gif"];
// NSData* data=[NSData dataWithContentsOfFile:filePath];
NSData *imageData=UIImageJPEGRepresentation(value, 1.0);
[request addData:imageData forKey:key];
}
[request setPostValue:value forKey:key]; }
} [request setCompletionBlock:^{
NSData *data=[request responseData];
NSJSONSerialization *json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
block(json);
}];
[request startAsynchronous]; }

3.调用格式

    NSString* urlString=@"http://192.168.1.101:8080/PengFu/jokController/getPhoneJok";
NSMutableDictionary *params=[NSMutableDictionary dictionaryWithObject:@"1 " forKey:@"rows"];
UIImage *image=[UIImage imageNamed:@"test3.gif"];
[params setObject:image forKey:@"pic"];
[params setObject:@"test gif image upload" forKey:@"status"]; [DataService requestWithASIURL:urlString1 parmas:params httpMethod:@"POST" completeBlock:^(id result) {
NSLog(@"%@",result);
}];

4.注意事项

下载代码编译报错请先导入网络请求所需的5个库例如以下



假设使用ARC自己主动内存管理。请在源代码编译后面加-fno-objc-arc,例如以下图


版权声明:本文博主原创文章,博客,未经同意不得转载。

ASIHTTPRequest 对GET POST 请求简包的更多相关文章

  1. iOS开发之Socket通信实战--Request请求数据包编码模块

    实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...

  2. I/O 请求数据包

    MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/hh439638(v=vs.85).aspx 发送到设备驱动程序的大部 ...

  3. python 3 处理HTTP 请求的包

    http http: https://docs.python.org/3/library/http.html http是一个包,里面含有多个模块:http.client,http.server,htt ...

  4. unity 打包资源及网络请求资源包

    第一步 导包 在Assets新建一个Editor目录 新建一个Test类 using UnityEngine; using System.Collections; using UnityEditor; ...

  5. 使用Charles进行网络请求抓包解析

    使用Charles进行网络请求抓包解析 0. 懒人的福音(⌐■_■)(破解版下载地址,记得安装java库支持) http://pan.baidu.com/s/1c08ksMW 1. 查看电脑的ip地址 ...

  6. Selenium爬虫实践(踩坑记录)之ajax请求抓包、浏览器退出

    上一篇: 使用Selenium截取网页上的图片 前言 最近在搞公司内部系统,累的一批,需要从另一个内部系统导出数据存到数据库做分析,有大量的数据采集工作,又没办法去直接拿到那个系统的接口,太难了,只能 ...

  7. ASIHTTPRequest 详解, http 请求终结者

    转:http://www.cnblogs.com/chen1987lei/archive/2011/06/07/2074636.html ASIHTTPRequest是一款极其强劲的HTTP访问开源项 ...

  8. 使用Fiddler针对Android手机网络请求抓包

    本文转载自大牛Trinea的博文:Android利用Fiddler进行网络数据抓包 主要介绍Android及IPhone手机上如何利用Fiddler进行网络数据抓包,比如我们想抓某个应用(微博.微信. ...

  9. python 2 处理HTTP 请求的包

    httplib httplib: https://docs.python.org/2/library/httplib.html python 的官方文档这样说明: This module define ...

随机推荐

  1. android 在你的UI中显示Bitmap - 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客只要没有注明“转”,那么均为原创,转贴请注明本博客链接链接 Displaying Bitmaps in Your UI 在你的UI中显示Bitmap ...

  2. stm32f103 TIM1初始化--定时器应用

    //TIM1 分频 #define TIM1_DIV1 (1-1) #define TIM1_DIV2 (2-1) #define TIM1_DIV4 (4-1) #define TIM1_DIV8 ...

  3. Hbase经常使用命令

    hbase shell命令的使用 再使用hbase 命令之前先检查一下hbase是否执行正常 hadoop@Master:/usr/hbase/bin$ jps 2640 HMaster 27170 ...

  4. hdu3294(manacher)

    传送门:Girls' research 题意:求最长回文串并输出位置及转换后的字符串. 分析:manacher算法算出最长回文串后记录中心位置,然后再转换回原字符串的起始和结束位置. #pragma ...

  5. MyEclipse配置启动多个Tomcat

    在实际开发中常常会遇到多个项目同一时候进行,来回切换不太方便,这时可分别部署在多个tomcat下. 改动一些配置可同一时候启动多个tomcat 一開始查阅相关文档,看到一篇文章一个Myeclipse同 ...

  6. jQuery拖动调整表格列宽度-resizableColumns

    实现鼠标可拖动调整表格列宽度 如图: 一.引入文件: <script src="/js/jquery-1.8.0.min.js" type="text/javasc ...

  7. mysql联合索引的应用

    有一个log表,结构是这样的: CREATE TABLE `weblog` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `ip` varc ...

  8. html5载入JS引用

    直接上代码 w文件 <?xml version="1.0" encoding="UTF-8"? > <div xmlns="http ...

  9. 測试JSON RPC远程调用(JSONclient)

    #include <string> #include <iostream> #include <curl/curl.h> /* 标题:JSonclient Auth ...

  10. 黄聪:Microsoft Enterprise Library 5.0 系列教程(十) Configuration Application Block

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(十) Configuration Application Block 到目前为止,我们使用的模块都是在同一个配置 ...