swift4.0 Http 请求
//
// HttpHelper.swift
// NavigateDemo
//
// Created by yixin ran on 07/08/2017.
// Copyright © 2017 yixin ran. All rights reserved.
//
import UIKit public class HttpHelper{
//单例
public static var Shared=HttpHelper();
// MARK:- get请求
func Get(path: String,success: @escaping ((_ result: String) -> ()),failure: @escaping ((_ error: Error) -> ())) { let url = URL(string: path.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!) let session = URLSession.shared let dataTask = session.dataTask(with: url!) { (data, respond, error) in if let data = data { if let result = String(data:data,encoding:.utf8){ success(result)
}
}else { failure(error!)
}
}
dataTask.resume()
} // MARK:- post请求
func Post(path: String,paras: String,success: @escaping ((_ result: String) -> ()),failure: @escaping ((_ error: Error) -> ())) { let url = URL(string: path)
var request = URLRequest.init(url: url!)
request.httpMethod = "POST" request.httpBody = paras.data(using: .utf8) let session = URLSession.shared
let dataTask = session.dataTask(with: request) { (data, respond, error) in if let data = data { if let result = String(data:data,encoding:.utf8){
success(result)
} }else {
failure(error!)
}
}
dataTask.resume()
}
}
class JsonHelper {
static let Shared=JsonHelper();
private let decoder=JSONDecoder();
private let encoder=JSONEncoder();
func ToJson<T:Codable>(_ obj:T) -> String {
let data=try! self.encoder.encode(obj)
let str=String(data:data,encoding:.utf8)!
return str
}
func ToObject<T:Codable>(_ data:String) -> T{
let obj=try! self.decoder.decode(T.self, from: data.data(using: .utf8)!)
return obj;
}
func GetData(_ str:String) -> Data {
return str.data(using: .utf8)!
}
func GetJson(_ data:Data) -> String {
return String(data:data,encoding:.utf8)!
}
}
swift4.0 Http 请求的更多相关文章
- 【iOS】Swift4.0 GCD的使用笔记
https://www.jianshu.com/p/47e45367e524 前言 在Swift4.0版本中GCD的常用方法还是有比较大的改动,这里做个简单的整理汇总. GCD的队列 队列是一种遵循先 ...
- swift4.0 数据转模型
swift 4.0时代的到来,说明了swift已经趋于稳定了,已经完全可以入坑了. 下面就拿最简单的数据转模型来说说,实战一下. 接口使用: http://116.211.167.106/api/l ...
- SpringBoot2.0针对请求参数@RequestBody验证统一拦截
title: "SpringBoot2.0针对请求参数@RequestBody验证的统一拦截"categories: SpringBoot2.0 Shirotags: Spring ...
- Thinkphp5.0 的请求方式
Thinkphp5.0 的请求方式 方法一(使用框架提供的助手函数): public function index(){ $request = request(); dump($request); } ...
- Swift4.0复习特性、编译标志和检查API的可用性
1.Swift中的特性: @引出,后面紧跟特性名,圆括号带参数即可. @attribute(args) avaiable: 指明对象,函数,类型的可用性. @available(iOS 10.0, m ...
- Android 6.0 权限请求
在申请权限之前一定要在清单配置文件中添加该权限private static final int MY_PERMISSIONS_REQUEST_RECORD_AUDIO = 1; //随便定义 publ ...
- 一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)
AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetwor ...
- ASP.NET 4.0验证请求 System.Web.HttpRequestValidationException: A potentially dangerous Request.F
System.Web.HttpRequestValidationException: A potentially dangerous Request.F 在使用类似eWebedtior 拷贝内容进去的 ...
- .NET Core 2.0 httpclient 请求卡顿解决方法
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip,UseProxy ...
随机推荐
- FireFox中使用showModalDialog显示的对话框不能用window.close()关闭
FireFox中使用 showModalDialog 显示的对话框不能用 window.close() 进行关闭: 是FireFox的配置问题,解决方法如下: 在FireFox地址栏里输入 about ...
- php课程 4-16 数组自定义函数(php数组->桶)
php课程 4-16 数组自定义函数(php数组->桶) 一.总结 一句话总结:php的数组储存机制,和桶排序完美的结合.所以php的操作中多想多桶的操作. 二.数组自定义函数 1.相关知识 ...
- 安装 Visual Studio,连接中国区 Azure
中国数据中心 目前,中国区 Azure 有两个数据中心,在位置字段中显示为“中国北部”和“中国东部”. 在 Azure 上创建应用程序的区别 在中国区 Azure 上开发应用程序与在境外 Azure ...
- KVC设置系统自带属性,不管是不是私有的属性
KVC 可以设置系统自带属性,不管是不是私有的属性: 1, 2,
- Java 中StringBuffer与StringBuilder区别(转)及String类的一些基本操作代码
String 字符串常量StringBuffer 字符串变量(线程安全) 多个线程访问时,不会产生问题(Synchronized)StringBuilder 字符串变量(非线程安全) 多个线程访问时 ...
- C#高效率复制对象
高效率复制对象 1.需求 在代码中经常会遇到需要把对象复制一遍,或者把属性名相同的值复制一遍. 比如: public class Student { public int Id { get; set; ...
- 超级简单的9patch
转载请声明出处:http://blog.csdn.net/dawanganban 我们在有些应用中会用到将图片内部指定区域撑大的效果,如微信中的消息内容背景,这时候就要用到9patch图片,效果如下: ...
- 打造开发React Native的Sublime
之前一年多一直用Sublime Text做前端开发,最近做React开发,发现不太好用,就尝试其他编辑器.WebStorm和VS Code都用过,WebStorm基本不用装插件,可以直接用,但用习惯 ...
- IT企业级应?开发模式演化
原文:IT企业级应?开发模式演化 前端研发流程 传统To B类系统的研发模式 探索 & 思考设计模式库(DPL)设计语⾔设计语⾔详解基于MVVM模式的Web框架 & UI库优化后的开发 ...
- Spring Cloud和Docker搭建微服务平台
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...