Google Drive Rest API V3 中的可恢复上传来自 Salesforce apex / REST 客户端
Resumable upload in Google Drive Rest API V3 from Salesforce apex / REST Client
我正在尝试在 Salesforce Apex 中使用 drive rest API 创建可恢复上传 session。
根据文档,需要遵循的 3 个步骤是
- 开始可恢复session
- 保存可恢复的 session URI
- 上传文件
但我无法从响应中检索到 位置 header。即使我尝试了邮递员休息客户端的请求,它也有同样的问题。
代码:
String body='{ "name" : "'+ filename+'",'+'"parents": ["0B3fYScqCn4pyWGRZVUIwWnNIbDg"] }';
Http http = new Http();
HttpRequest req = new HttpRequest();
req.setEndpoint('https://www.googleapis.com/drive/v3/files?uploadType=resumable');
req.setHeader('Authorization', 'Bearer ' +accessToken);
system.debug('###accessToken'+accessToken);
req.setHeader('Content-Type', 'application/json;charset=UTF-8');
req.setHeader('Content-length', String.valueOf(body.length()));
req.setHeader('X-Upload-Content-Type',fileType);
req.setHeader('X-Upload-Content-Length',String.valueOf(fileSize));
req.setBody(body);
req.setMethod('POST');
//req.setTimeout(60*1000);
HttpResponse resp = http.send(req);
system.debug('@@@fileSize'+fileSize);
system.debug('@@@@@@@---'+resp.getbody());
system.debug('@@@@@@@---'+resp.getHeader('Location')); //returning null
for(String str : resp.getHeaderKeys()){
system.debug('@@@@@@@---str:'+str+':: '+resp.getHeader(str));
//no header with location /Location
}
回复:
{
"kind": "drive#file",
"id": "0B3fYScqCn4pyaGRYN214MnpiV2s",
"name": "Untitled",
"mimeType": "application/octet-stream"
}
您使用的是 API 的 v2 还是 v3?您的端点是 v2,您的问题是 v3。
您是否使用正确的端点尝试了您的代码?
https://www.googleapis.com/upload/drive/v3/files
我正在尝试在 Salesforce Apex 中使用 drive rest API 创建可恢复上传 session。
根据文档,需要遵循的 3 个步骤是
- 开始可恢复session
- 保存可恢复的 session URI
- 上传文件
但我无法从响应中检索到 位置 header。即使我尝试了邮递员休息客户端的请求,它也有同样的问题。
代码:
String body='{ "name" : "'+ filename+'",'+'"parents": ["0B3fYScqCn4pyWGRZVUIwWnNIbDg"] }';
Http http = new Http();
HttpRequest req = new HttpRequest();
req.setEndpoint('https://www.googleapis.com/drive/v3/files?uploadType=resumable');
req.setHeader('Authorization', 'Bearer ' +accessToken);
system.debug('###accessToken'+accessToken);
req.setHeader('Content-Type', 'application/json;charset=UTF-8');
req.setHeader('Content-length', String.valueOf(body.length()));
req.setHeader('X-Upload-Content-Type',fileType);
req.setHeader('X-Upload-Content-Length',String.valueOf(fileSize));
req.setBody(body);
req.setMethod('POST');
//req.setTimeout(60*1000);
HttpResponse resp = http.send(req);
system.debug('@@@fileSize'+fileSize);
system.debug('@@@@@@@---'+resp.getbody());
system.debug('@@@@@@@---'+resp.getHeader('Location')); //returning null
for(String str : resp.getHeaderKeys()){
system.debug('@@@@@@@---str:'+str+':: '+resp.getHeader(str));
//no header with location /Location
}
回复:
{
"kind": "drive#file",
"id": "0B3fYScqCn4pyaGRYN214MnpiV2s",
"name": "Untitled",
"mimeType": "application/octet-stream"
}
您使用的是 API 的 v2 还是 v3?您的端点是 v2,您的问题是 v3。 您是否使用正确的端点尝试了您的代码?
https://www.googleapis.com/upload/drive/v3/files