Delphi中使用goo.gl(Google的缩短URL服务)API

2022-11-30 10:51:18 作者:admin

本文整理自网络,侵删。

 介绍如何在Delphi中使用goo.gl(Google的缩短URL服务)API获得缩短的URL。
由于很难理解如何将数据发送到API,因此对其进行了总结。我认为分析JSON数据的方法会有所帮助。
提前准备在Google API页面上启用URL Shortener API登录到Google API控制台 https://code.google.com/apis/console/,选择“服务”菜单,然后将“ URL缩短器API”更改为“有效”。
将“ URL缩短器API”更改为“有效”
获取API密钥在Google API控制台 https://code.google.com/apis/console/中选择“ API访问”菜单,然后单击“创建新的浏览器密钥”按钮以创建API密钥。(“引荐来源”字段留空)
按下“创建新的浏览器键”按钮
创建一个API密钥
获取SSL所需的DLL(libeay32.dll,ssleay32.dll)从百度搜索自己下载。

程序启动Delphi并创建一个新项目。
在窗体上放置两个TButton,TMemo,TIdHTTP,TIdSSLIOHandlerSocketOpenSSL。


在IdHTTP1的IOHander属性中设置IdSSLIOHandlerSocketOpenSSL1。
在IdHTTP1的IOHander属性中设置IdSSLIOHandlerSocketOpenSSL1
为Button1添加一个OnClick事件。
uses IdGlobal;
procedure TForm1.Button1Click(Sender: TObject);const  // API key  API_KEY: string = '…';  // 短?sURL  LONG_URL: string = 'http://www.google.com/';var  Url: string;  ASource: TMemoryStream;  AResponseContent: string;begin  Url := 'https://www.googleapis.com/urlshortener/v1/url?key=' + API_KEY;
  ASource := TMemoryStream.Create;  WriteStringToStream(ASource, Format('{ "longUrl": "%s" }', [LONG_URL]),    IndyUTF8Encoding);  ASource.Position := 0;
  IdHTTP1.Request.ContentType := 'application/json';  IdHTTP1.Request.CharSet := 'UTF-8';
  try    AResponseContent := IdHTTP1.Post(Url, ASource);  finally    Memo1.Lines.Add(AResponseContent);    ASource.Free;  end;end;添加一个IdGlobal单元以用于使用WriteStringToStream函数。使用WriteStringToStream函数将要发送的参数写入流。
某些TIdHttp Post方法接受TString作为参数,但是由于传输数据的格式不同,因此无法使用它们。TStream必须作为参数传递。
将URL Shortener API结果输出到Memo1。
以下JSON格式字符串输出到Memo1。
{ "kind": "urlshortener#url", "id": "http://goo.gl/XXXX", "longUrl": "http://www.google.com/"}在Button2的OnClick事件中,解析JSON格式的字符串以获得缩短的URL。
uses Data.DBXJSON;
procedure TForm1.Button2Click(Sender: TObject);var  JSONObject: TJSONObject;  ShortUrl: string;begin  JSONObject := TJSONObject.ParseJSONValue(Memo1.Text) as TJSONObject;  ShortUrl := JSONObject.Get('id').JsonValue.Value;  JSONObject.Free;
  Memo1.Lines.Add(ShortUrl);end;处理JSON格式数据的类在Data.DBXJSON单元中。添加要使用的Data.DBXJSON单元。
使用TJSONObject的ParseJSONValue方法解析JSON字符串。我知道这是键/值对格式,因此我将其转换为TJSONObject。
获取的缩短的URL被添加到Memo1。
生成项目后,将SSL所需的DLL复制到与创建它的应用程序相同的文件夹中。
运行该程序,然后单击Button1,Button2。
运行应用程序

相关阅读 >>

Delphi 读取dll所有输出函数名

Delphi 通用程序自动更新升级

Delphi二值图像投影算法

Delphi中带缓存的数据更新技术

Delphi 如何读取内存中的数据?

Delphi中实现磁盘信息类(tdriveinfo)

Delphi createmessagedialog

Delphi 7中ado控件打开access数据库文件

Delphi idftp 使用被动连接

Delphi 移除u盘的两种方法

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话