HarmonyOS 鸿蒙Next http put上传文件到云服务器
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端点。
-
构建HTTP请求:
- 使用
HttpURLConnection
或第三方库(如OkHttp)来构建HTTP PUT请求。 - 设置请求方法为
PUT
。 - 设置请求头,包括
Content-Type
(如multipart/form-data
或application/octet-stream
,取决于服务器要求)。
- 使用
-
读取文件数据:
- 使用
FileInputStream
读取本地文件数据。 - 将文件数据转换为字节数组或
InputStream
,以便发送到服务器。
- 使用
-
发送请求:
- 将文件数据写入HTTP请求的输出流中。
- 发送请求并等待响应。
-
处理响应:
- 读取服务器返回的响应码和响应体。
- 根据响应码和响应体内容判断上传是否成功。
示例代码(使用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