You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

пре 3 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # XSHttpTool
  2. ##为PhalApi定制 基本架构遵循AFNetworking
  3. * 将所有网络请求管理放到一起方便管理调度,也能最大限度的简化调用
  4. * 默认所有网络请求结果返回为Json,若需要自定义重载 **XSHttpTool.h** 文件中的+ (AFHTTPRequestOperationManager *)sharedManager方法
  5. * 先在 **XSHttpTool.h** 文件中设置主体Api
  6. 例如你要访问
  7. ```javascript
  8. http://www.xsdota.com/PhalApi/Public/demo/?service=User.AppList
  9. ```
  10. 你应该这样设置:
  11. ```javascript
  12. static NSString *const HOST_ADDRESS = @"http://www.xsdota.com/PhalApi/Public/demo";
  13. static NSString *const EXTRA_STR = @"?service=";
  14. ```
  15. 根据具体的需求可以灵活修改,这两个字符串就是拼接作用.
  16. ##GET请求
  17. ### 然后使用GET请求的时候这样使用:
  18. ```javascript
  19. NSString *URLStr = @"User.AppList";
  20. [XSHttpTool GET:URLStr param:nil success:^(id responseObject) {
  21. NSLog(@"%@",responseObject);
  22. } failure:^(NSError *error) {
  23. NSLog(@"%@",error);
  24. }];
  25. ```
  26. ### 下面这个调用和上面结果一致
  27. 对于不同主机的api,直接请求URL也是可以的,不过要以http或https开头才能生效
  28. ```javascript
  29. NSString *URLStr = @"http://www.xsdota.com/PhalApi/Public/demo/?service=User.AppList";
  30. [XSHttpTool GET:URLStr param:nil success:^(id responseObject) {
  31. NSLog(@"%@",responseObject);
  32. } failure:^(NSError *error) {
  33. NSLog(@"%@",error);
  34. }];
  35. ```
  36. ### 带缓存的GET方法:GETCache
  37. 默认使用内存缓存,若要支持硬盘缓存需要在AppDelegate中的
  38. ```javascript
  39. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中添加:
  40. NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
  41. diskCapacity:20 * 1024 * 1024
  42. diskPath:nil];
  43. [NSURLCache setSharedURLCache:URLCache];
  44. ```
  45. 缓存默认是以sqlite文件为载体存在于app的cache目录下,若要对缓存进行更进一步的操作,建议带上自己的diskPath,便于管理.
  46. ##POST请求
  47. ###普通的POST请求
  48. ```javascript
  49. NSDictionary *params = @{@"userName" : @"xiaos",
  50. @"password" : @"111111" };
  51. [XSHttpTool POST:@"User.TimeLines" param:params success:^(id responseObject) {
  52. NSLog(@"%@",responseObject);
  53. } failure:^(NSError *error) {
  54. NSLog(@"%@",error);
  55. }];
  56. ```
  57. ###在body中存放数据的POST请求(用于上传一段二进制数据,比如一段文本或者一张图片)
  58. ```javascript
  59. NSData *strData = [@"hello" dataUsingEncoding:NSUTF8StringEncoding];
  60. [XSHttpTool UpLoadData:strData to:@"User.TimeLines" withParamName:nil fileName:@"file" mimeType:@"text/html" param:nil success:^(id responseObject) {
  61. NSLog(@"%@",responseObject);
  62. } failure:^(NSError *error) {
  63. NSLog(@"%@",error);
  64. } uploadProgress:^(float uploadPercent) {
  65. NSLog(@"%f",uploadPercent);
  66. }];
  67. ```
  68. ###上传多张图片的POST请求
  69. ```javascript
  70. NSArray *images = @[[UIImage imageNamed:@"0"],
  71. [UIImage imageNamed:@"1"],
  72. [UIImage imageNamed:@"2"]
  73. ];
  74. [XSHttpTool upLoadImages:images to:@"User.UpImages" withParamName:nil ratio:0.1f param:nil success:^(id responseObject) {
  75. NSLog(@"%@",responseObject);
  76. } failure:^(NSError *error) {
  77. NSLog(@"%@",error);
  78. } uploadProgress:^(float uploadPercent) {
  79. NSLog(@"%f",uploadPercent);
  80. }];
  81. ```