在使用Node.js或iOS进行HTTP POST调用后,从二进制文件中获取返回值的方法如下:
http
或第三方模块axios
等发送HTTP POST请求。Content-Type
为application/octet-stream
,表示发送的是二进制文件。fs
模块将数据保存到本地文件,或者直接处理数据。示例代码:
const http = require('http');
const fs = require('fs');
const options = {
hostname: '目标服务器地址',
port: 80,
path: '/目标路径',
method: 'POST',
headers: {
'Content-Type': 'application/octet-stream'
}
};
const req = http.request(options, (res) => {
const chunks = [];
res.on('data', (chunk) => {
chunks.push(chunk);
});
res.on('end', () => {
const data = Buffer.concat(chunks);
// 处理二进制文件数据
fs.writeFileSync('output.bin', data); // 保存到本地文件
// 其他处理逻辑
});
});
const fileData = fs.readFileSync('input.bin'); // 读取二进制文件
req.write(fileData); // 发送请求体
req.end();
NSURLSession
或第三方库Alamofire
等发送HTTP POST请求。Content-Type
为application/octet-stream
,表示发送的是二进制文件。示例代码:
import Foundation
let url = URL(string: "目标服务器地址/目标路径")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/octet-stream", forHTTPHeaderField: "Content-Type")
let fileData = try! Data(contentsOf: URL(fileURLWithPath: "input.bin")) // 读取二进制文件
request.httpBody = fileData // 设置请求体
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let data = data else {
print("请求失败: \(error?.localizedDescription ?? "Unknown error")")
return
}
// 处理二进制文件数据
try! data.write(to: URL(fileURLWithPath: "output.bin")) // 保存到本地文件
// 其他处理逻辑
}
task.resume()
以上是在Node.js和iOS中使用HTTP POST调用后从二进制文件中获取返回值的方法。根据实际需求,可以根据返回的二进制文件数据进行进一步处理,如解析、存储、展示等。
领取专属 10元无门槛券
手把手带您无忧上云