REST与Google Cloud Endpoints新手:POST请求的浏览器URI查询语句求助
解决浏览器访问Google Cloud Endpoints API的问题
嘿,刚入门REST和Cloud Endpoints对吧?我来帮你搞定这个浏览器访问的问题~
首先得搞清楚核心差异:你用curl执行的是POST请求,但浏览器地址栏直接输入URL发起的是GET请求,这俩是完全不同的HTTP方法,所以直接把JSON塞到URL参数里肯定行不通!
给你几个实用的解决方案:
1. 用Endpoints自带的API Explorer调试(最推荐!)
Cloud Endpoints自带了可视化的调试工具,完全不用自己拼请求。直接在浏览器里访问:
http://localhost:8080/_ah/api/explorer
在这里找到你的echo API,它会自动帮你生成请求模板——不管是POST还是其他方法,你只需要填入参数,点执行就能看到结果,新手友好度拉满!
2. 用浏览器开发者工具发POST请求
如果不想用第三方工具,也可以用浏览器自带的开发者工具:
- 按F12打开开发者工具,切换到「Network」标签
- 右键空白处,选择「新建请求」(不同浏览器叫法可能略有区别)
- 请求方法选
POST,输入URL:http://localhost:8080/_ah/api/echo/v1/echo - 在「Headers」里添加
Content-Type: application/json - 在「Body」里填入
{"message":"hello world"},然后发送请求就能拿到响应了
3. 修改API,添加GET版本的方法
如果就是想通过浏览器地址栏直接访问(也就是用GET请求),那得给你的API加一个支持GET的方法。举个Java Endpoints的例子:
@Api(name = "echo", version = "v1") public class EchoApi { // 原来的POST方法 @ApiMethod(name = "echo", path = "echo", httpMethod = ApiMethod.HttpMethod.POST) public Echo postEcho(Echo echo) { return echo; } // 新增的GET方法,接收query参数 @ApiMethod(name = "echoGet", path = "echo", httpMethod = ApiMethod.HttpMethod.GET) public Echo getEcho(@Named("message") String message) { Echo echo = new Echo(); echo.setMessage(message); return echo; } }
修改后重新部署,就能在浏览器里访问:
http://localhost:8080/_ah/api/echo/v1/echo?message=hello%20world
(注意URL里的空格要转成%20,或者直接输入空格浏览器会自动转码)
内容的提问来源于stack exchange,提问作者Degoah
相关产品推荐
相关产品推荐

