【发布时间】:2014-09-17 17:37:01
【问题描述】:
我正在使用 App Engine 和 PHP 运行时和 Google Cloud Datastore 开发应用程序的后端。
我已经为 App Engine 设置了本地开发,并且正在为本地 Datastore 使用 gcd 工具。
当我向在线数据存储发送请求时,它可以工作。
不幸的是,当我向本地数据存储区发送任何请求时,我在浏览器中收到以下错误:
Fatal error: Uncaught exception 'Google_Service_Exception' with message 'Error calling
POST http://localhost:8081/datastore/v1beta2/datasets/project-id/allocateIds: (400)
unsupported content-type: application/json; charset=UTF-8' in G:\Programs\Google\Cloud
SDK\project-id\default\Google\Http\REST.php:79 Stack trace: #0 G:\Programs\Google\Cloud
SDK\project-id\default\Google\Http\REST.php(44): Google_Http_REST::decodeHttpResponse(
Object(Google_Http_Request)) #1 G:\Programs\Google\Cloud SDK\project-id\default\Google
\Client.php(503): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_
Request)) #2 G:\Programs\Google\Cloud SDK\project-id\default\Google\Service\Resource.
php(195): Google_Client->execute(Object(Google_Http_Request)) #3 G:\Programs\Google\
Cloud SDK\project-id\default\Google\Service\Datastore.php(153): Google_Service_
Resource->call('allocateIds', Array, 'Google_Service_...') #4 G:\Programs\Google\Cloud
SDK\project-id\default\DatastoreService.php in G:\Programs\Google\Cloud SDK\
project-id\default\Google\Http\REST.php on line 79
在 gcd 中我收到以下错误:
Sep 17, 2014 8:24:07 PM com.google.apphosting.client.serviceapp.BaseApiServlet doPost
INFO: ApiServlet POST
Sep 17, 2014 8:24:07 PM com.google.apphosting.client.serviceapp.BaseApiServlet doCall
INFO: unsupported content-type: application/json; charset=UTF-8
Sep 17, 2014 8:24:07 PM com.google.apphosting.client.serviceapp.BaseApiServlet
writeErrorResponse
SEVERE: INVALID_ARGUMENT: unsupported content-type: application/json; charset=UTF-8
我尝试在 Google/Service/Resource.php 第 171 行更改内容类型,但似乎没有任何效果。
关于如何解决这个问题的任何想法?
【问题讨论】:
-
我在下面添加了一个答案。如果这对您有帮助(听起来会),您介意提交功能请求吗? github.com/GoogleCloudPlatform/google-cloud-datastore/issues
标签: php google-app-engine google-cloud-datastore