美文网首页
表单的提交

表单的提交

作者: LucXion | 来源:发表于2021-05-26 18:14 被阅读0次
// 原生表单的提交
    func creatFormRequest(imgData:Data) {
        
        let url = "http://www.baidu.com"
        let NL = "\r\n"
        
        let boundary  = "ABC" // 自定义分界符
        let segmentBoundary = "--" + boundary
        let endBoundary = "--" + boundary + "--"
        
        /*
         bodyHeaderStr:
         分界符
         内容
         */
        var bodyHeaderStr:String = "\(segmentBoundary)\(NL)"
        bodyHeaderStr = bodyHeaderStr + "Content-Disposition: form-data;name=\"objectName\"\(NL)\(NL)"// content-Disposition的值不加引号,但是其他的值要加引号
        
        // 内容
        bodyHeaderStr = bodyHeaderStr + "1.png/01X3\(NL)"
        bodyHeaderStr = bodyHeaderStr + "Content-Disposition: form-data;filename=\"1.png\";fileid=\"01X3\"\(NL)"
        bodyHeaderStr = bodyHeaderStr + "Content-Type:image/png\r\n\r\n";
        
        /*
         bodyData:
         bodyHeaderStr.data
         img.data
         endBoundaryStr.data
         */
        let mData = NSMutableData()
        mData.append(bodyHeaderStr.data(using: .utf8)!)
        mData.append(imgData)
        mData.append((NL + endBoundary).data(using: .utf8)!)
        
        /*
         Content-Type = multipart/form-data;boundary=ABC
         */
        var urlRequest = URLRequest.init(url: URL.init(string: url)!)
        urlRequest.allHTTPHeaderFields = ["token":"XXXX"]
        urlRequest.httpMethod = "post"
        urlRequest.setValue("Content-Type", forHTTPHeaderField: "multipart/form-data;boundary=\(boundary)")
        urlRequest.addValue("\(mData.length)", forHTTPHeaderField: "Content-Length")
        urlRequest.httpBody = mData as Data
        urlRequest.timeoutInterval = 10
        
        let session = URLSession.init(configuration: URLSessionConfiguration.default)
        let task = session.dataTask(with: urlRequest) { (data, response, error) in
            
        }
        task.resume()
    }

// Alamofire表单的提交
    func creatAlamofireFrom() {
        let url = "https://www.baidu.com"
        Session.default.upload(multipartFormData: { (multipartFormData) in
            multipartFormData.append("Luc".data(using: .utf8)!, withName: "name")
            multipartFormData.append("19".data(using: .utf8)!, withName: "age")
        }, to: url).response { (response) in
            
        }
    }

相关文章

  • 12、Struts2表单重复提交

    什么是表单重复提交表单的重复提交:若刷新表单页面, 再提交表单不算重复提交.在不刷新表单页面的前提下:多次点击提交...

  • Http的post请求中表单、json提交的请求头、请求体区别

    1、真正的表单提交,http默认的也是表单 python模拟表单提交 2、json提交 python模拟json提交

  • Javascript-表单脚本

    一、表单的基础知识 1、表单提交 普通提交 以编程方式调用submit()方法提交表单 解决表单重复提交的办法:1...

  • FormData

    表单,FormData 对象 表单概述 表单用来收集用户提交的数据,发送到服务器 表单提交 1. 提交 表单里...

  • Struts2学习笔记 | 防止表单重复提交及自定义拦截器

    表单重复提交的概述 若刷新表单页面,再提交表单不算重复提交。 若是重定向,已经提交成功后再刷新不算重复提交。 以下...

  • JAVAWeb(第三周)

    表单提交方式 *使用submit提交 .... *使用button提交表单 -代码 //实现提交方法 functi...

  • 表单

    表单基础 提交表单 Tips: 解决重复提交表单的问题的两个方法1)在第一次提交表单后就禁用提交按钮2)利用ons...

  • Js表单提交

    1、表单提交 表单提交是刚开始学js的朋友很迷惑的一个问题,怎么提交,怎么阻止默认提交,怎么提交表单不跳转等等问题...

  • 表单

    表单: form 元素创建表单 常用属性: action:提交表单的地址 method:提交表单使用的方法,一般有...

  • HTML 5_CSS 3_JavaScript讲义(二)-HTM

    (1).HTML原有的表单及表单控件 1.表单元素 action:表单提交到的地址method:指定提交表单时发送...

网友评论

      本文标题:表单的提交

      本文链接:https://www.haomeiwen.com/subject/wqxlsltx.html