【问题标题】:HttpError 400 in jobs.get(jobId,ProjectId) even with right values即使具有正确的值,jobs.get(jobId,ProjectId) 中的 HttpError 400
【发布时间】:2014-08-26 20:22:08
【问题描述】:

当我调用 jobs.get(jobId,ProjectID); 我明白了:

“代码”:400,“错误”:[{ “域”:“全球”, “消息”:“无效的项目 ID 'My_Project_ID:job_6c2e8cc358ad42d2ad55ef266d342b68'。 项目 ID 必须包含 6-63 个小写字母、数字或短划线。 ID 必须以 一个字母,不能以破折号结尾。", “原因”:“无效”}],“消息”:“无效的项目 ID 'My_Project_ID:job_6c2e8cc358ad42d2ad55ef266d342b68'。项目 ID 必须 包含 6-63 个小写字母、数字或破折号。 ID 必须以 一个字母,不能以破折号结尾。”

(我将 projectId 切换为“My_Project_ID”)

如果我在 Google 开发人员指南的“试用”部分中使用准确的 projectID 和 jobID 在here

我按预期得到了工作!

如果 projectId 或 jobId 不正确,那么它也不会在谷歌开发者网站上工作。 什么会导致这种行为?

【问题讨论】:

    标签: google-app-engine google-bigquery


    【解决方案1】:

    您似乎将完全限定的作业 ID 作为项目 ID 传递。在您上面提到的示例中,“My_Project_ID”是项目 ID,“job_6c2e8cc358ad42d2ad55ef266d342b68”是作业 ID,但看起来您正在传递完整的字符串“My_Project_ID:job_6c2e8cc358ad42d2ad55ef266d342b68”作为作业 ID。

    还要注意参数 order 是 (projectId, jobId),而不是 (jobId, projectId)。

    尝试调用 jobs.get("My_Project_ID", "job_6c2e8cc358ad42d2ad55ef266d342b68"),看看是否可行。

    【讨论】:

    • 我尝试切换 jobId 和 ProjectID ,还是不行,错误信息改变了一点,现在它在谈论 JobID 但组合字符串 ProjectId+JobId 保持不变
    • { "code" : 400, "errors" : [ { "domain" : "global", "message" : "Invalid job ID \"My_Project_ID:job_894b0d528b0748b6b5cd68d0363a2a2a\"。作业 ID 必须是字母数字(加上下划线和破折号),并且长度不得超过 1024 个字符。”、“原因”:“无效”}]、“消息”:“无效的作业 ID \”My_Project_ID:job_894b0d528b0748b6b5cd68d0363a2a2a\”。作业 ID 必须是字母数字(加上下划线和破折号),并且长度不得超过 1024 个字符。” }
    【解决方案2】:

    我在尝试执行以下操作时遇到了这个问题:

    jobs().get(projectId, job.getId()).execute().getStatus().getState();

    似乎 job.getId() 返回一个包含 ProjectId 和 JobId 的字符串(并包含 Job-Ids 中不允许的字符)。 解决方案是改为调用 job.getJobReference().getJobId()。

    jobs().get(projectId, job.getJobReference().getJobId()).execute().getStatus().getState();

    【讨论】:

      猜你喜欢
      • 2012-10-26
      • 2022-09-29
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      • 1970-01-01
      • 2018-03-22
      相关资源
      最近更新 更多