首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NodeJS / iOS -如何在使用HTTP POST调用后从二进制文件中获取返回值

在使用Node.js或iOS进行HTTP POST调用后,从二进制文件中获取返回值的方法如下:

  1. Node.js:
    • 首先,使用Node.js的内置模块http或第三方模块axios等发送HTTP POST请求。
    • 在请求中,设置请求头Content-Typeapplication/octet-stream,表示发送的是二进制文件。
    • 将二进制文件作为请求体发送给目标服务器。
    • 接收服务器返回的响应,在响应中获取二进制文件的数据。
    • 可以使用fs模块将数据保存到本地文件,或者直接处理数据。

示例代码:

代码语言:javascript
复制

const http = require('http');

const fs = require('fs');

const options = {

代码语言:txt
复制
 hostname: '目标服务器地址',
代码语言:txt
复制
 port: 80,
代码语言:txt
复制
 path: '/目标路径',
代码语言:txt
复制
 method: 'POST',
代码语言:txt
复制
 headers: {
代码语言:txt
复制
   'Content-Type': 'application/octet-stream'
代码语言:txt
复制
 }

};

const req = http.request(options, (res) => {

代码语言:txt
复制
 const chunks = [];
代码语言:txt
复制
 res.on('data', (chunk) => {
代码语言:txt
复制
   chunks.push(chunk);
代码语言:txt
复制
 });
代码语言:txt
复制
 res.on('end', () => {
代码语言:txt
复制
   const data = Buffer.concat(chunks);
代码语言:txt
复制
   // 处理二进制文件数据
代码语言:txt
复制
   fs.writeFileSync('output.bin', data); // 保存到本地文件
代码语言:txt
复制
   // 其他处理逻辑
代码语言:txt
复制
 });

});

const fileData = fs.readFileSync('input.bin'); // 读取二进制文件

req.write(fileData); // 发送请求体

req.end();

代码语言:txt
复制
  1. iOS:
    • 使用NSURLSession或第三方库Alamofire等发送HTTP POST请求。
    • 在请求中,设置请求头Content-Typeapplication/octet-stream,表示发送的是二进制文件。
    • 将二进制文件作为请求体发送给目标服务器。
    • 接收服务器返回的响应,在响应中获取二进制文件的数据。
    • 可以将数据保存到本地文件,或者直接处理数据。

示例代码:

代码语言:swift
复制

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

代码语言:txt
复制
 guard let data = data else {
代码语言:txt
复制
   print("请求失败: \(error?.localizedDescription ?? "Unknown error")")
代码语言:txt
复制
   return
代码语言:txt
复制
 }
代码语言:txt
复制
 // 处理二进制文件数据
代码语言:txt
复制
 try! data.write(to: URL(fileURLWithPath: "output.bin")) // 保存到本地文件
代码语言:txt
复制
 // 其他处理逻辑

}

task.resume()

代码语言:txt
复制

以上是在Node.js和iOS中使用HTTP POST调用后从二进制文件中获取返回值的方法。根据实际需求,可以根据返回的二进制文件数据进行进一步处理,如解析、存储、展示等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django之文件上传下载等相关

实现步骤: 1)创建项目Django_upload:django-admin startproject Django_upload;创建app:cd Django_upload;python manage.py startapp blog。 2)设计模型(M) 这里的模型只包括了两个属性:用户名(即谁上传了该文件);文件名。具体形式如下所示: #coding=utf-8 from __future__ import unicode_literals from django.db import models class NormalUser(models.Model): username=models.CharField('用户名',max_length=30) #用户名 headImg=models.FileField('文件',upload_to='./upload')#文件名 def __str__(self): return self.username class Meta: ordering=['username']#排序风格username 同步数据库:Python manage.py makemigrations python manage.py migrate 3)设计视图(V) view.py: #coding=utf-8 from django.shortcuts import render,render_to_response from django import forms from django.http import HttpResponse from blog.models import * # Create your views here. class NormalUserForm(forms.Form): #form的定义和model类的定义很像 username=forms.CharField() headImg=forms.FileField() #在View中使用已定义的Form方法 def registerNormalUser(request): #刚显示时调用GET方法 if request.method=="POST": uf = NormalUserForm(request.POST,request.FILES)#刚显示时,实例化表单(是否有数据) if uf.is_valid():#验证数据是否合法,当合法时可以使用cleaned_data属性。 #用来得到经过'clean'格式化的数据,会所提交过来的数据转化成合适的Python的类型。 username = uf.cleaned_data['username'] headImg = uf.cleaned_data['headImg'] #write in database normalUser=NormalUser()#实例化NormalUser对象 normalUser.username = username normalUser.headImg = headImg normalUser.save()#保存到数据库表中 return HttpResponse('Upload Succeed!')#重定向显示内容(跳转后内容) else: uf=NormalUserForm()#刚显示时,实例化空表单 return render(request,'register.html',{'uf':uf})#只有刚显示时才起作用 配置urls.py: from django.conf.urls import url from django.contrib import admin from blog.views import * urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^register/$',registerNormalUser), ] 4)设计模板与表单(T)templates/register.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="

03

.Net之使用Jquery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径

首先对于图片上传而言,在我们的项目开发中可以说出现的频率是相当的高的。这篇文章中,我将要描述的是在我们.Net中如何使用Jquery Ajax通过FormData对象异步提交图片文件到后台保存,并返回保存的图片路径展示出图片,实现一个无刷新的异步图片上传的过程,当然这里我讲解的是单张图片的保存过程,对于多图片上传的话其实我们只需要在type='file'文本框中加上一个multiple可多选,然后获取input中的文件数组遍历向后台提交感兴趣的话可以尝试,不过下一篇博客将会讲解如何使用Layui上传多张图片到服务端保存。

02

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券