1

我正在发送以下批处理请求以获取线程:

POST /batch HTTP/1.1
Host: www.googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5
Content-Type: multipart/mixed; type="application/http"; boundary="737d0154-1999-455c-9886-65d7121a1382"

access_token=accToken&quotaUser=user

--737d0154-1999-455c-9886-65d7121a1382
Content-Type: application/http
Content-ID: <0x8d93fa0>

GET /gmail/v1/users/me/threads/146df2dd11472f07 HTTP/1.1
Host: googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5


--737d0154-1999-455c-9886-65d7121a1382
Content-Type: application/http
Content-ID: <0x8d93190>

GET /gmail/v1/users/me/threads/146df14c9a13b5d9 HTTP/1.1
Host: googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5


--737d0154-1999-455c-9886-65d7121a1382
Content-Type: application/http
Content-ID: <0x8d93190>

GET /gmail/v1/users/me/threads/146def434891a5b0 HTTP/1.1
Host: googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5


--737d0154-1999-455c-9886-65d7121a1382
Content-Type: application/http
Content-ID: <0x8d93190>

GET /gmail/v1/users/me/threads/146def1dbfe6579c HTTP/1.1
Host: googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5


--737d0154-1999-455c-9886-65d7121a1382
Content-Type: application/http
Content-ID: <0x8d93190>

GET /gmail/v1/users/me/threads/146def155ca0ab2b HTTP/1.1
Host: googleapis.com
Accept-Encoding: gzip
User-Agent: Magin (gzip)
Accept-Language: en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5
--737d0154-1999-455c-9886-65d7121a1382--

但是,我收到来自 Google 服务器的 400 错误请求:请求失败:错误请求 (400)

任何想法为什么会发生这种情况以及我该如何解决?

编辑:有趣的行为:如果有 <= 3 个批处理请求,它会起作用,但如果有更多则不会。

4

2 回答 2

0

我注意到两件事:

(1)第一部分Content-Type前的空格

(2) 在 POST 的最后(在它自己的行等上)缺少最后一个“--737d0154-1999-455c-9886-65d7121a1382--”,请注意边界之后的尾随“--” ...

于 2014-06-28T00:13:12.080 回答
0

我遇到了同样的问题,显然在批处理请求中的嵌套调用为我修复它之前有 \r\n

前任:

--foo_bar 内容类型:应用程序/http

GET /v1/people:searchContacts?query=query&pageSize=100 HTTP/1.1 --foo_bar 内容类型:application/http

GET /v1/otherContacts:search?query=a&pageSize=100&readMask=emailAddresses,names HTTP/1.1 --foo_bar Content-Type: application/http

GET /v1/people:searchDirectoryPeople?query=query&pageSize=100&readMask=emailAddresses,names HTTP/1.1 --foo_bar--

在 GET 之前有\r\n而不仅仅是\n\n\n

于 2021-12-08T09:40:06.170 回答