我正在try 使用Google Cloud Storage REST API上传图片,但不断收到以下错误:
NSURLErrorDomain Code=-1005 "The network connection was lost."
个
var components = URLComponents(string: "https://storage.googleapis.com/upload/storage/v1/b/\(bucketName)/o")!
components.queryItems = [
URLQueryItem(name: "uploadItem", value: "media"),
URLQueryItem(name: "name", value: filename)
]
var request = URLRequest(url: components.url!)
request.setValue("Authorization", forHTTPHeaderField: "Bearer \(accessToken)")
request.setValue("image/jpeg", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let (data, response) = try await URLSession.shared.upload(for: request, from: try! Data(contentsOf: fileURL))
if let httpResponse = response as? HTTPURLResponse {
print("Status code:", httpResponse.statusCode)
print("Response:", String(data: data, encoding: .utf8) ?? "")
}
有趣的是,使用其他语言,如Kotlin ,我没有错误,文件被正确上传.
val contentType = "image/jpeg".toMediaType()
val requestBody = file.asRequestBody(contentType)
val request = Request.Builder()
.url("https://www.googleapis.com/upload/storage/v1/b/${BUCKET_NAME}/o?uploadType=media&name=$fileName")
.addHeader("Authorization", "Bearer $accessToken")
.post(requestBody)
.build()
val client = OkHttpClient()
val response = client.newCall(request).execute()