关于Google Endpoints的gapi.client.load自定义标题?

时间:2017-07-09 15:48:32

标签: javascript java android google-app-engine gapi

在我的Google Endpoints项目中,我需要自定义标头,因为我使用自定义身份验证。我在后端(端点代码)执行此操作,如this StackOverflow answer中所述。要在Android客户端上运行,我只需将额外的标头发送到端点服务,如下所示:

Backend.Builder pb = new Backend.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) throws IOException {
    HttpHeaders headers = request.getHeaders();
    headers.set("authstuff", usernameTxt+"&"+passwdTxt);
    request.setHeaders(headers);
}
});

在JavaScript代码中,似乎没有任何方法可以使用gapi.client.load-action发送标头,因此我已经尝试在加载完成后立即发出请求。我已尝试过以下几种版本:



gapi.client.load('backend', 'v1', null, 'http://localhost:8080/_ah/api').then(function () {
		 gapi.client.request({
		     root: 'http://localhost:8080/_ah/api',
		     path: '/backend/v1/',
		     headers: {'authstuff': 'user&password'}
		 }).then(function(res) {
		     console.log(res);
		 }, function(res) {
		     console.log(res);
		 });
		 
	     });




我在获得404错误后得到的一个想法是将authheader(authstuff)发送到其中一个REST端点(让我们说userinfo / userid可能就是其中之一)。这给了我客户端503服务不可用错误,并且在服务器上,似乎根本不包括authstuff标头。 (换句话说,用/ backend / v1 / userinfo / 1 /替换上面的路径)。

我的问题是真的;你们有没有任何方法可以包含必要的标题,以便上面的StackOverflow链接中的身份验证方式有效?我知道最简单的方法是使用Google帐户,但这不是一个真正的选择。对我来说这似乎很奇怪,在Android Java版本中这很容易,但在javascript中很难。

0 个答案:

没有答案