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 ...
随机推荐
- thinkphp将excel导入到数据库中
首先下载phpexcel插件 http://pan.baidu.com/s/1hq56dFm 我用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一 ...
- zzuli OJ 1129: 第几天
Description 你知道.2012-1-1是该年的第1天.而9999-9-9呢?给你一个详细的日期,计算该日期是该年的第几天. Input 输入一个日期.格式为:Year-month-day.y ...
- Crystal Report - 水晶报表导出文件的格式设置
水晶报表中自带的导出和打印功能用起来确实很方便,只不过有时候需要导出的文件并不需要那么多种类型,在网上找到一些朋友的代码总结了一下,可以通过代码实现自定义导出文件类型 首先需要定义一个枚举: publ ...
- windows 7、Windows10 系统目录迁移,修改安装的默认路径:Users,Program Files,ProgramData
Tips:本文只针对Win7.windows 10系统有过测试,其他系统尚未测试:不过大家想尝试也可.这次实验是我做的全新 win7_32位系统来测试的,windows10当然64位的系统也可.至少现 ...
- poj1639 Picnic Planning,K度限制生成树
题意: 矮人虽小却喜欢乘坐巨大的轿车,车大到能够装下不管多少矮人.某天,N(N≤20)个矮人打算到野外聚餐.为了集中到聚餐地点,矮人A 要么开车到矮人B 家中,留下自己的轿车在矮人B 家,然后乘坐B ...
- matlab 图像分块及恢复
1. block_divide % 返回的块向量构成的矩阵,其维度信息为 K^2 * N,每一列由块构成的列向量 function P = block_divide(I, K) r = size(I, ...
- 数学概念 —— 奇异性(Singularity,Vertical tangent)
0. 基本定义 Singularity (mathematics) 数学上的奇异性一般是指,函数在该点未定义(not defined,比如取值为无穷),或者不可微(fails to be well-b ...
- spring boot——结合docker
spring boot——结合docker 前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 liunx机器上,也可以实现虚 ...
- Project Euler:Problem 28 Number spiral diagonals
Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is forme ...
- Android获取屏幕大小
本来想着如下方法就能得到了 Display display = getWindowManager().getDefaultDisplay(); Log.i("view", &quo ...