swift 原生post网络请求

//这里首先提示一下,请求头和请求体都要转为json的字符串,是因为后台接收的格式为raw,如果是其他格式,可能不需要转,转换的方法为:

//首先将字典转为data

let jsonData:Data = try! JSONSerialization.data(withJSONObject: dic, options: []) as Data

//再将data转为字符串

let jsonStr = NSString.init(data: jsonData, encoding: String.Encoding.utf8.rawValue)

****************************。post。******************************************

/// 创建url

let url:URL! = URL(string: “http://”)

/// 发起

var request:URLRequest! = URLRequest.init(url: url, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 15)

/// 请求方式

request.httpMethod = "POST"

/// 默认的网络请求方式

// request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

//常用的网络请求方式

request.setValue("application/json", forHTTPHeaderField: "Content-Type")

//请求头的配置,一般请求头说是一个字典,这里要把字典转为json字符串,

request.allHTTPHeaderFields = single.headersDic as? [String : String]

/// 创建请求体 请求体一般也为字典,也要转成json字符串

let bodyData = StringPublic().getHttpBodys(parm: ["UserName":nameTextField.text!]).data(using: .utf8)

//这里请求体为data上面已经转过

request.httpBody = bodyData

/// 接收的数据

var response : URLResponse?

/// 发起网络请求

do {

//解析数据

let res = try! NSURLConnection.sendSynchronousRequest(request, returning: &response)

let dic : NSDictionary = try! JSONSerialization.jsonObject(with: res, options: .allowFragments) as! NSDictionary

print(dic)

}

创建请求头

创建请求体

发起post请求

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 同步请求可以从因特网请求数据, 一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成, 才可以进行下一步操...
    小灬博阅读 894评论 2 4
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,721评论 2 7
  • 228400 AFNetworkingCOCAlamofire网络库 本章节由CocoaChina翻译组成员星夜暮...
    八戒不抽烟阅读 5,473评论 3 2
  • 读《邓普顿教你逆向投资》,里面又讲到当时日本经济下行,一度一蹶不振,而很多人因此对日本的经济状态不报希望,但是邓普...
    南星01阅读 441评论 2 0