ios 发送 form-data 请求
在iOS中,可以使用NSURLSession来发送form-data请求。以下是一个示例代码:
// 创建URL
let url = URL(string: "http://example.com/upload")!
// 创建request
var request = URLRequest(url: url)
request.httpMethod = "POST"
// 创建form-data数据
let formData = NSMutableData()
// 添加文本参数
formData.appendString("--\(boundary)\r\n")
formData.appendString("Content-Disposition: form-data; name=\"username\"\r\n\r\n")
formData.appendString("John Doe\r\n")
// 添加文件参数
formData.appendString("--\(boundary)\r\n")
formData.appendString("Content-Disposition: form-data; name=\"file\"; filename=\"image.jpg\"\r\n")
formData.appendString("Content-Type: image/jpeg\r\n\r\n")
formData.append(imageData) // imageData是文件的二进制数据
formData.appendString("\r\n")
// 添加结束符
formData.appendString("--\(boundary)--\r\n")
// 设置请求头
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.setValue("\(formData.length)", forHTTPHeaderField: "Content-Length")
// 设置请求体
request.httpBody = formData as Data
// 发送请求
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error {
print("Error: \(error)")
} else if let data = data {
// 处理响应数据
let responseString = String(data: data, encoding: .utf8)
print("Response: \(responseString)")
}
}
task.resume()
以上代码创建了一个POST请求,并使用form-data格式来上传一个文本参数和一个文件参数。你可以根据自己的需求修改和扩展这个示例代码
原文地址: https://www.cveoy.top/t/topic/ixLi 著作权归作者所有。请勿转载和采集!