Java 将文件上载到Box.com(Android)
我一直在遵循上的示例代码和文档。但是,每当我尝试将文件上载到box.com时,我都会收到以下错误: 11-13 18:25:45.222 20996-21555/com.caa.capturebox W/System.err:com.box.androidsdk.content.box异常:发送请求时出错(401) 11-13 18:25:45.237 20996-21555/com.caa.capturebox W/System.err:at com.box.androidsdk.content.requests.BoxRequestUpload.send(BoxRequestUpload.java:114) 11-13 18:25:45.238 20996-21555/com.caa.capturebox W/System.err:at com.caa.capturebox.MainActivity$5.run(MainActivity.java:441) 下面是我最后一次尝试,但是无论我尝试从输入流还是从本地文件上载,我都会遇到与上面相同的错误Java 将文件上载到Box.com(Android),java,android,box,Java,Android,Box,我一直在遵循上的示例代码和文档。但是,每当我尝试将文件上载到box.com时,我都会收到以下错误: 11-13 18:25:45.222 20996-21555/com.caa.capturebox W/System.err:com.box.androidsdk.content.box异常:发送请求时出错(401) 11-13 18:25:45.237 20996-21555/com.caa.capturebox W/System.err:at com.box.androidsdk.conten
private void uploadFile() {
mDialog = ProgressDialog.show(MainActivity.this, getText(R.string.boxsdk_Please_wait), getText(R.string.boxsdk_Please_wait));
new Thread() {
@Override
public void run() {
try {
Log.e("mya", "uploadFile: entered try");
FileInputStream uploadStream = new FileInputStream(image_name);
//InputStream uploadStream = getResources().getAssets().open(uploadFileName);
String destinationFolderId = "0";
String uploadName = "BoxSDKUpload.jpg";
//BoxRequestsFile.UploadFile request = mFileApi.getUploadRequest(uploadStream, uploadName, destinationFolderId);
BoxRequestsFile.UploadFile request = mFileApi.getUploadRequest(image_name, "0");
final BoxFile uploadFileInfo = request.send();
showToast("Uploaded " + uploadFileInfo.getName());
loadRootFolder();
} catch (IOException e) {
e.printStackTrace();
} catch (BoxException e) {
e.printStackTrace();
BoxError error = e.getAsBoxError();
if (error != null && error.getStatus() == HttpStatus.SC_CONFLICT) {
ArrayList<BoxEntity> conflicts = error.getContextInfo().getConflicts();
if (conflicts != null && conflicts.size() == 1 && conflicts.get(0) instanceof BoxFile) {
//uploadNewVersion((BoxFile) conflicts.get(0));
return;
}
}
showToast("Upload failed");
} finally {
mDialog.dismiss();
}
}
}.start();
}
private void uploadFile(){
mDialog=ProgressDialog.show(MainActivity.this、getText(R.string.boxsdk\u Please\u wait)、getText(R.string.boxsdk\u Please\u wait));
新线程(){
@凌驾
公开募捐{
试一试{
Log.e(“mya”,“上传文件:输入try”);
FileInputStream uploadStream=新的FileInputStream(图像名称);
//InputStream uploadStream=getResources().getAssets().open(uploadFileName);
字符串destinationFolderId=“0”;
字符串uploadName=“BoxSDKUpload.jpg”;
//BoxRequestsFile.UploadFile request=mFileApi.getUploadRequest(uploadStream、uploadName、destinationFolderId);
BoxRequestsFile.UploadFile request=mFileApi.getUploadRequest(图像名称,“0”);
final BoxFile uploadFileInfo=request.send();
showToast(“Upload”+uploadFileInfo.getName());
loadRootFolder();
}捕获(IOE异常){
e、 printStackTrace();
}捕获(盒子例外e){
e、 printStackTrace();
BoxError error=e.getAsBoxError();
if(error!=null&&error.getStatus()==HttpStatus.SC\u冲突){
ArrayList conflicts=error.getContextInfo().getConflicts();
if(conflicts!=null&&conflicts.size()==1&&conflicts.get(0)instanceof BoxFile){
//uploadNewVersion((BoxFile)冲突。获取(0));
返回;
}
}
showToast(“上传失败”);
}最后{
mDialog.discouse();
}
}
}.start();
}
既然您有(401)响应,我假设它没有被授权返回http代码。您是否已登录到邮箱:
请登录以使用此代码的box服务:
BoxSession session = new BoxSession(context);
session.authenticate();
谢谢你的回复。我要做的第一件事是进行身份验证,并能够确认我已登录。但是,每当我尝试在验证后上载文件时,我都会收到上面列出的错误。您是否获得API密钥和开发者令牌?使用开发者令牌,您可以在box服务上运行rest/http查询。是的,当您第一次启动应用程序时,它将通过box身份验证过程。之后,我可以浏览文件/文件夹,但当我上传本地文件或输入流时,它不工作,只抛出401响应。我对今晚要测试和更新的代码做了一些更改,但我担心结果会是一样的。如果您上次的测试不起作用,请提供代码,我将在本周查看。我已上载了我的测试代码,请注意客户端ID和机密已被清除。今天我将尝试通过代理运行它,看看是否可以获得有关401错误的更多详细信息。