HarmonyOS 鸿蒙Next http怎么实现带文件传输的POST方法

发布于 1周前 作者 zlyuanteng 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next http怎么实现带文件传输的POST方法

实现类似curl -F的功能

let request = http.createHttp();
let options: http.HttpRequestOptions = {
method: http.RequestMethod.POST,
multiFormDataList: [{
name: “file”,
remoteFileName: “file”,
contentType: “text/plain”,
filePath: value
}],
header: { ‘Content-Type’: ‘application/json’ },
readTimeout: 60000,
connectTimeout: 5000
}
let result = await request.request(
http://x.x.x.x:7777/parse, options);
if (!result) {

}

用这个代码进行带文件的POST,服务器收不到文件信息


更多关于HarmonyOS 鸿蒙Next http怎么实现带文件传输的POST方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
解决了,header要改成这个
深色代码主题
复制
header: { 'Content-Type': 'multipart/form-data' },

更多关于HarmonyOS 鸿蒙Next http怎么实现带文件传输的POST方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next上实现带文件传输的POST方法,可以通过以下步骤来完成:

  1. 创建MultipartBody:首先,使用鸿蒙的HTTP库(如OkHttp或类似库,需确保兼容鸿蒙系统)创建一个MultipartBody对象,该对象将包含要传输的文件和其他表单字段。

  2. 添加文件:使用MultipartBody.Part类将文件添加到MultipartBody中。需要指定文件的MIME类型、文件名以及文件内容的RequestBody。

  3. 构建POST请求:创建Request.Builder对象,设置URL、POST方法以及构建的MultipartBody作为请求体。

  4. 执行请求:通过HTTP客户端(如OkHttpClient)执行构建的请求,并处理响应。

示例代码(伪代码,需根据鸿蒙兼容库调整):

MultipartBody multipartBody = new MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    .addFormDataPart("file", "filename", RequestBody.create(file, MediaType.parse("file/*")))
    .build();

Request request = new Request.Builder()
    .url("https://yourserver.com/upload")
    .post(multipartBody)
    .build();

OkHttpClient client = new OkHttpClient();
client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        // Handle failure
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        // Handle response
    }
});

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部