基本概念
Http
Http 提供实用程序方法,用于进行各种 HTTP 网络请求。
使用 Http
GET 请求,响应主体为字符串
使用 getString() 方法,可以轻松地发出返回字符串响应的 GET 请求
Http.getString('https://httpbin.org/get').then(
(result: string) => {
// do something with the string response
},
(e) => {}
)
GET 请求,响应主体为 JSON
对于响应为 JSON 的 GET 请求,请使用 getJSON() 方法
Http.getJSON('https://httpbin.org/get').then(
(result) => {
console.log(result)
},
(e) => {}
)
GET 请求,响应主体为文件
对于响应为 文件 的 GET 请求,请使用 getFile() 方法
Http.getFile(
'https://art.nativescript.org/logo/export/NativeScript_Logo_Wide_White_Blue_Rounded_Blue.png'
).then(
(resultFile: File) => {
// The returned result will be File object
},
(e) => {}
)
GET 请求,响应主体为图像
对于响应为图像(ImageSource) 的 GET 请求,请使用 getImage() 方法
Http.getImage('https://httpbin.org/image/jpeg').then(
(res: ImageSource) => {},
(e) => {}
)
注意
上述方法除了可以使用 URL 字符串外,还可以使用 HttpRequestOptions 对象。此外,除了上述方法外,您还可以使用 request 方法,并对 HttpResponse 对象的 content
调用相应的(例如 .toJSON()
、.toString()
)方法,以获取所需的响应类型。
发出 POST 请求
要发出 POST 请求,请使用 request() 方法
Http.request({
url: 'https://httpbin.org/get',
method: 'POST',
headers: { 'Content-Type': 'application/json' },
content: JSON.stringify({
username: 'tony',
password: 'pass',
}),
}).then(
(response) => {
const result = response.content?.toJSON()
},
(e) => {
// error
}
)
API
getString()
Http.getString(url: string): Promise<string>
将指定 URL 的内容下载为字符串。
getJSON()
Http.getJSON<T>(url: string): Promise<T>
将指定 URL 的内容下载为字符串,并返回其 JSON.parse 表示形式。
getImage()
Http.getImage(url: string): Promise<ImageSource>
从指定 URL 下载内容,并尝试将其解码为图像。
getFile()
Http.getFile(url: string, destinationFilePath?: string): Promise<File>
从指定 URL 下载内容,并尝试将其保存为文件。destinationFilePath
是您要保存返回文件的可选位置。
request()
Http.request(options: HttpRequestOptions): Promise<HttpResponse>
使用提供的选项发出通用 HTTP 请求,并返回 HttpResponse 对象。
HttpRequestOptions 接口
HttpRequestOptions 接口具有以下成员
url
const requestOptions = {
url: 'https://httpbin.org',
}
表示请求 URL 的字符串值。
method
const requestOptions = {
url: 'https://httpbin.org',
method: 'POST',
}
获取或设置请求方法。
headers
const requestOptions = {
headers: { 'header-name': 'header-value' },
}
可选:获取或设置 JSON 格式的请求标头。
content
const requestOptions = {
content: formData,
}
//or
const requestOptions = {
content: 'some string',
}
可选:获取或设置请求主体。
timeout
const requestOptions = {
timeout: 22333,
}
可选:获取或设置请求超时(以毫秒为单位)。
dontFollowRedirects
const requestOptions = {
dontFollowRedirects: true,
}
可选:布尔值,用于设置是否不遵循服务器重定向的请求。
HttpResponse 接口
statusCode
获取响应状态码。
类型:number
content
获取响应内容。类型:HttpContent
headers
获取响应标头
HttpContent 接口
raw
response.content?.raw
获取响应主体作为原始数据。
toString()
response.content?.toString()
获取响应主体作为字符串。
toJSON()
response.content?.toJSON(encoding)
获取响应主体作为 JSON 对象。encoding
是可选的,类型为 'UTF8' | 'GBK'
。
toImage()
response.content
?.toImage()
.then((image: ImageSource) => {})
.catch((error) => {})
获取响应主体作为 ImageSource。
toFile()
const file: File = response.content?.toFile(destinationFilePath)
获取响应主体作为文件。destinationFilePath
是您要保存返回文件的可选位置。