首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android硬盘Api收到400坏请求

Android硬盘Api收到400坏请求
EN

Stack Overflow用户
提问于 2013-03-21 13:16:45
回答 1查看 666关注 0票数 0

我花了很长时间努力地尝试将Google集成到android应用程序中。但这是一个陷阱--谷歌总是感到惊讶--从坏的意义上讲。这一切都是从我依赖谷歌的指令(第一第一)开始的。我满足了所有条件--创建了OAuth 2.0,为应用程序创建了一个密钥,应用程序reg.,导入了库.通常,他们会做他们要求的每件事,并进行100次复查。但果然没有奏效--在第一个例子中,我收到了一个“403号禁止访问未配置”的,第二个无法实现,因为谷歌还没有发布密匙。整个星期,我都在寻找解决这个问题的替代方案--大量的信息检查、大量的努力和花费的时间--但结果是0。ArtOfWarfare的一般问题带来了一线希望。但是他提出的代码(据称是他工作的代码)我不工作--我允许应用程序使用该帐户,然后由于“与Google的通信错误”连接失败,多次尝试产生同样的结果。因此,我绘制了“他们”的代码,只是为了尝试与驱动器通信。因为我在这里写作,所以它不起作用。下面显示的代码返回一个"400坏请求无效上传请求“,"。您对如何通过授权解决这个问题有什么想法吗?还有其他成功登录的方法吗?我很乐意与您进行建设性的对话。”

代码语言:javascript
运行
复制
package com.example.hiv;

import java.io.IOException;

import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;
import com.google.api.client.googleapis.services.GoogleKeyInitializer;
import com.google.api.client.http.FileContent;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;

public class ActivityStart extends Activity {

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_activity_start);
    String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/drive";
    AccountManager accountManager = AccountManager.get(this);
    accountManager.invalidateAuthToken(accountManager.getAccounts()[0].type, null);
    accountManager.getAuthToken( accountManager.getAccountsByType("com.google")[0], AUTH_TOKEN_TYPE, null, this,
            new AccountManagerCallback<Bundle>() {

                public void run(final AccountManagerFuture<Bundle> future) {
                    try {
                        String authToken = future.getResult().getString(
                                AccountManager.KEY_AUTHTOKEN);

                            final HttpTransport transport = AndroidHttp.newCompatibleTransport();
                            final JsonFactory jsonFactory = new GsonFactory();
                            GoogleCredential credential = new GoogleCredential();
                            credential.setAccessToken(authToken);
                            final Drive drive = new Drive.Builder(transport, jsonFactory, credential)
                                    .setApplicationName("HIV")
                                    .setGoogleClientRequestInitializer(new GoogleKeyInitializer("*****yDaPx1EtTHpMMMULzYlxjc3xdwsf******"))
                                    .build();

                            Thread t = new Thread(new Runnable() {
                                @Override
                                public void run() {
                                  try {
                                    final com.google.api.services.drive.model.File body = new com.google.api.services.drive.model.File();
                                    body.setTitle("My Test File");
                                    body.setDescription("A Test File");
                                    body.setMimeType("text/plain");

                                    java.io.File fileContent = new java.io.File("data/data/com.example.hiv/document.txt");
                                    FileContent mediaContent = new FileContent("text/plain", fileContent);

                                    com.google.api.services.drive.model.File file = drive.files().insert(body, mediaContent).execute();

                                  } catch (UserRecoverableAuthIOException e) {
                                    e.printStackTrace();
                                  } catch (IOException e) {
                                    e.printStackTrace();
                                  }
                                }
                              });
                              t.start(); 

                    } catch (OperationCanceledException exception) {
                        // TODO
                    } catch (Exception exception) {
                        Log.d(this.getClass().getName(), exception.getMessage());
                    }
                }
            }, null);       
  } 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-26 08:53:09

解决了:我试图发送一个大小为0 kB的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15548692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档