这是我的终点:
\n\n@POST("v4/MyStore/data")\nObservable<Headers> requestStore(@Body MyStoreRequest request);\n
Run Code Online (Sandbox Code Playgroud)\n\n我试图得到这样的回应:
\n\nrequestService.requestStore(request)\n .subscribeOn(Schedulers.io())\n .observeOn(Schedulers.computation())\n .map(headers -> {\n Log.d("Response",""+headers);\n return headers;\n }).subscribe(headers -> {\n Log.d("Response",""+headers);\n },\n error -> {\n Log.d("ERRRROOOR","Error");\n });\n
Run Code Online (Sandbox Code Playgroud)\n\n我收到如下错误:
\n\nException: retrofit2.adapter.rxjava.HttpException: HTTP 403 Forbidden\n
Run Code Online (Sandbox Code Playgroud)\n\n在邮递员中我收到回复:
\n\nConnection \xe2\x86\x92keep-alive\nContent-Length \xe2\x86\x920\nContent-Type \xe2\x86\x92application/json; charset=utf-8\nDate \xe2\x86\x92Mon, 03 Sep 2018 18:47:30 GMT\nMYid \xe2\x86\x92f028df50-c8c5-4cce-92e7-70130345ba46\n
Run Code Online (Sandbox Code Playgroud)\n\n我在这里做错了什么?
\n您可能在来自 Android 客户端的 API 请求中缺少标头。根据您的评论,您将在授权标头中发送不记名令牌。
因此,您需要发送不记名令牌以及请求正文,如下所示
@Headers({
"Authorization: Bearer <your_bearer_token_here>", /* change token here */
"Content-Type: application/json"
})
@POST("v4/MyStore/data")
Observable<Headers> requestStore(@Body MyStoreRequest request);
Run Code Online (Sandbox Code Playgroud)
例子,
@Headers({
"Authorization: Bearer ca0df98d-978c-410b-96ec-4e592a788c18",
"Content-Type: application/json"
})
@POST("v4/MyStore/data")
Observable<Headers> requestStore(@Body MyStoreRequest request);
Run Code Online (Sandbox Code Playgroud)