WinInet 谷歌地图数据 api 接收错误无效令牌

发布于 2024-08-14 08:37:31 字数 1118 浏览 12 评论 0原文

我正在尝试使用 wininet 和 delphi 登录 Google 地图数据 API(获取 MyMaps),但总是收到响应:无效令牌。

我已经通过 wininet HTTPS 调用获得了身份验证令牌。
有什么问题吗?

请帮助。这里是示例代码:



ServerURL='maps.google.com';
pathURL='/maps/feeds/maps/default/full';
headers='Authorization: GoogleLogin auth="jbhi6....7it6g976"'; //or like that

function SendHTTP_GET(const ServerURL, pathURL, headers:string): string;
var
  IInternet, Connection, aFile: HINTERNET;
begin
  Result:= '';
  IInternet := InternetOpen(PChar('MyApp'), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    Connection := InternetConnect(IInternet, pAnsiChar(ServerURL), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
    try
      aFile := HttpOpenRequest(Connection,'GET',pAnsiChar(pathURL), nil, nil, nil, 0, 0);
      try
        if HttpSendRequest(aFile, pAnsiChar(headers), Length(headers), nil, 0) then
          Result := ReadStreamData(aFile)
      finally
        InternetCloseHandle(aFile);
      end;
    finally
      InternetCloseHandle(Connection);
    end;
  finally
    InternetCloseHandle(IInternet);
  end;
end;

I am trying to login to Google maps data API (get MyMaps) with wininet and delphi but always recevied response: Invalid Token.

I have gotten auth toke with wininet HTTPS call.

What's the problem ?

Please help.Here a example code :



ServerURL='maps.google.com';
pathURL='/maps/feeds/maps/default/full';
headers='Authorization: GoogleLogin auth="jbhi6....7it6g976"'; //or like that

function SendHTTP_GET(const ServerURL, pathURL, headers:string): string;
var
  IInternet, Connection, aFile: HINTERNET;
begin
  Result:= '';
  IInternet := InternetOpen(PChar('MyApp'), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    Connection := InternetConnect(IInternet, pAnsiChar(ServerURL), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
    try
      aFile := HttpOpenRequest(Connection,'GET',pAnsiChar(pathURL), nil, nil, nil, 0, 0);
      try
        if HttpSendRequest(aFile, pAnsiChar(headers), Length(headers), nil, 0) then
          Result := ReadStreamData(aFile)
      finally
        InternetCloseHandle(aFile);
      end;
    finally
      InternetCloseHandle(Connection);
    end;
  finally
    InternetCloseHandle(IInternet);
  end;
end;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过气美图社 2024-08-21 08:37:31

也许用换行符终止标题?

Terminate the headers with a linefeed maybe?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文