Java 将文件上载到Box.com(Android)

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

我一直在遵循上的示例代码和文档。但是,每当我尝试将文件上载到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)

下面是我最后一次尝试,但是无论我尝试从输入流还是从本地文件上载,我都会遇到与上面相同的错误

    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错误的更多详细信息。