Swift&NodeJS 使用Alamofire进行Post(zhuan)

这篇博客主要实现Swift客户端和NodeJS后台的Post、Get请求实现。

我是一个略有点讨厌重复使用工具的人,比如这些基本功能完全可以用OC和PHP等替代,但是没办法,现在知识更新的太快啦,Swift和NodeJS这么热,不去看看还会跟不上时代,里面一些特性也是让人大开眼界。

下面就来说说实现吧。

Swift客户端:

Swift中的原生HTTP请求方式有(和OC中一样)

1.NSURLConnection的sendSynchronousRequest方法(自iOS9.0起被废除)

2. NSURLSession的dataTaskWithRequest方法可以进行Get或者Post请求

(另外NSURLSession的downloadTaskWithRequest方法可以下载文件,  uploadTaskWithRequest方法可以上传文件等 )

这些就不在这篇博客里写了,在此主要实现使用第三方Alamofire的方法(类似OC里的AFNetworking)

Alamofire:  https://github.com/Alamofire/Alamofire

Swift客户端提交:

//
//  ViewController.swift
//  SwiftUrlSessionDemo
//
//  Created by shen on 15/11/25.
//  Copyright © 2015年 shen. All rights reserved.
//
import UIKit
import Alamofire
class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    testGet()
    testPost()
    testUrlSession()
  }
  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }
  func testGet(){
    let para=["getpara1": "getxcode","getpara2":"getnodejs"];
    Alamofire.request(.GET, "http://localhost:8002/getdemo",parameters:para)
      .responseJSON { response in
        //print(response.request)  // original URL request
        //print(response.response) // URL response
        //print(response.data)	 // server data
        //print(response.result)   // result of response serialization
        if let JSON = response.result.value {
          print("getJSON: \(JSON)")
        }
    }
  }
  func testPost(){
    let para=["postpara1": "postxcode","postpara2":"postnodejs"];
    Alamofire.request(.POST, "http://localhost:8002/postdemo",parameters:para)
      .responseJSON { response in
        //print(response.request)  // original URL request
        //print(response.response) // URL response
        //print(response.data)	 // server data
        //print(response.result)   // result of response serialization
        if let JSON = response.result.value {
          print("postJSON: \(JSON)")
        }
    }
  }
  //URLSession方法:
  func testUrlSession(){
    let session = NSURLSession.sharedSession()
    let request = NSURLRequest(URL: NSURL(string: "http://localhost:8002/getdemo?para=session")!)
    let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
      let string = NSString(data: data!, encoding: NSUTF8StringEncoding)
      print("returnStr:\(string!)")
    })
    task.resume()
  }
}

后台使用的是NodeJS,使用Express和body-parser框架

Node后台接收:

var express = require(‘express‘);
var bodyParser = require(‘body-parser‘);

var app = express();
var server = require(‘http‘).createServer(app);

app.use(bodyParser.urlencoded({
  extended: true
}));

var PORT = process.env.PORT || 8002;
server.listen(PORT);
console.log(‘Server running.‘);

app.get(‘/getdemo‘, function (req, res) {
  console.log("Get method");
  console.log(req.query);
  var returnDic = {resultStr: ‘get request success‘};
  	res.contentType(‘json‘);//返回的数据类型
    res.send(JSON.stringify(returnDic));//给客户端返回一个json格式的数据
}); 

app.post(‘/postdemo‘, function (req, res) {
  console.log("Post method");
  console.log(req.body);
  res.send(req.body);
});
时间: 2024-08-09 10:27:07

Swift&NodeJS 使用Alamofire进行Post(zhuan)的相关文章

Swift网络库Alamofire的导入

一.手动导入 1, 官网下载 Alamofire 2, 解压下载的文件 放入工程的顶层目录下 3, 打开工程 Add Files 4, 选中项目 TARGETS > General > Embedded Binaries > +(添加) 完成. 注意选择对应的framework,我们这里选择frameworkiOS 5, 检测是否添加成功,首先检测项目部署版本,使用Alamofire项目 Deployment Target最低为8.0,然后运行下面的代码,调试区输出内容.至此,添加成功

Alamofire 上传图片入门教程(上)

提示: 本教程基于 Xcode 7.3, iOS 9.3, 和 Swift 2.2 Alamofire 是一个为 iOS 和 Mac OS,基于 Swift 的 HTTP 网络库.它在 Apple 的基础网络库上提供了一个优雅的接口,简化了许多常见的网络任务. Alamofire 提供链式地请求与响应方法,JSON 参数以及响应的序列化和授权,等等.在本教程中,你将使用 Alamofire 来完成基本的网络任务,包括上传文件以及使用第三方库 RESTful API 来请求数据. 注:关于 RES

用Macbook开发桌面应用,使用Alamofire链接.Net Core Webapi的注意事项!

------------https方式----------------------- 因为Swift9之后访问接口只能使用https,所以在后台加入pfx文件(怎么生成,自行百度吧)1.将pfx放在项目根目录下面.2.将Program的启动项改为 // WebHost.CreateDefaultBuilder(args) // .UseKestrel(option => { // option.Listen(System.Net.IPAddress.Any, 5001, (lop) => {

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者

iOS_第3方网络请求_YTKNetwork

github地址:https://github.com/yuantiku/YTKNetwork/blob/master/ProGuide.md YTKNetwork 是什么 YTKNetwork 是猿题库 iOS 研发团队基于 AFNetworking 封装的 iOS 网络库,其实现了一套 High Level 的 API,提供了更高层次的网络访问抽象. YTKNetwork提供了哪些功能 相比 AFNetworking,YTKNetwork 提供了以下更高级的功能: 支持按时间缓存网络请求内容

构建高效的研发与自动化运维

为什么IT运维需要自动化?  所谓IT运维管理的自动化是指通过将日常IT运维中大量的重复性工作,小到简单的日常检查.配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现"零延时"的IT运维.简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制.自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份,杀毒

iOS 开发的非常有用 第三方库

ios中那些好用的第三方库 ios 里面有很多很多好用的第三方框架,有许多是项目中必用的,本文主要来写一些常用的ios第三方库的使用 (一)Masonry Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X. Masonry是一个用代码写ios或os界面的库,可以代替Auto layout. Masonry的github地址:https://github.com/SnapKit/Maso

李洪强iOS开发之iOS好文章收集

李洪强iOS开发之iOS好文章收集 该文收集朋友们转发或自己的写的技术文章,如果你也有相关的好文章,欢迎留言,当好文章多的时候,我会对这些好文章进行分门别类 文章 简述 日期 直播服务配置 使用 nginx 和 rtmp 插件搭建视频直播和点播服务器 2015-05-12 20:13:00 iOS9适配技巧 图iOS9适配新技巧 2015-09-29 09:01 TextKit分页效果 图文混排 2015年6月1日 iPhone 6 / 6 Plus 设计·适配方案 屏幕适配 2014-11-2