HarmonyOS 鸿蒙Next http put上传文件到云服务器

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next http put上传文件到云服务器


let url = ‘真实上传地址’
let filePath = ‘本地文件地址’
let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
let photoSize:number = fs.statSync(file.fd).size;
let buffer = new ArrayBuffer(photoSize);
fs.readSync(file.fd, buffer);
fs.closeSync(file);
let httpRequest = http.createHttp();
let responseResult = httpRequest.request(url, {
method: http.RequestMethod.PUT,
// readTimeout: Const.HTTP_READ_TIMEOUT,
// header: {},
// connectTimeout: Const.HTTP_READ_TIMEOUT,
extraData: buffer,
});
// Processes the data and returns.
responseResult.then((value: http.HttpResponse) => {
if (value.responseCode === http.ResponseCode.OK) {
console.log(‘上传成功:’ + http.ResponseCode.OK)
} else {
console.log(‘接口错误:’ + value.responseCode)
}
}).catch(() => {
console.log(‘http-put请求错误:’)
})<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

一般通过 url 预签名上传到云存储(oss)之类较多


更多关于HarmonyOS 鸿蒙Next http put上传文件到云服务器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next http put上传文件到云服务器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,使用HTTP PUT方法上传文件到云服务器,可以通过以下步骤实现。这里我们假设你已经有一个云服务器的URL和接收文件的API端点。

  1. 构建HTTP请求

    • 使用HttpURLConnection或第三方库(如OkHttp)来构建HTTP PUT请求。
    • 设置请求方法为PUT
    • 设置请求头,包括Content-Type(如multipart/form-dataapplication/octet-stream,取决于服务器要求)。
  2. 读取文件数据

    • 使用FileInputStream读取本地文件数据。
    • 将文件数据转换为字节数组或InputStream,以便发送到服务器。
  3. 发送请求

    • 将文件数据写入HTTP请求的输出流中。
    • 发送请求并等待响应。
  4. 处理响应

    • 读取服务器返回的响应码和响应体。
    • 根据响应码和响应体内容判断上传是否成功。

示例代码(使用HttpURLConnection):

// 注意:以下代码仅为示例,实际使用时需根据具体情况调整
URL url = new URL("服务器URL");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("PUT");
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "multipart/form-data");

File file = new File("文件路径");
FileInputStream fis = new FileInputStream(file);
OutputStream os = conn.getOutputStream();

byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fis.read(buffer)) != -1) {
    os.write(buffer, 0, bytesRead);
}

fis.close();
os.close();

int responseCode = conn.getResponseCode();
// 处理响应代码

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

回到顶部