DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pixelcraft
今日帖子: 59
在线用户: 15
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/3/17 18:31:14
标题:
【求问】Delphi 如何 调用 讯飞提供的 人脸对比 Web API 浏览:1981
加入我的收藏
楼主: 讯飞人脸对比 API 地址
https://doc.xfyun.cn/rest_api/%E4%BA%BA%E8%84%B8%E6%AF%94%E5%AF%B9.html

我摸索了很久,还是无法正常调用,参考了 其他语言 写的样例,但是不知道如何翻译为
Delphi 的写法。

向讯飞官方提交了工单,回复说 他们不能提供 Delphi 版的样例。

不得已向 各位 Delphier ,请教。

有调用成功的朋友,能分享一个 样例 么,感谢。
----------------------------------------------
-
作者:
男 ke8880 (ke8880) ★☆☆☆☆ -
普通会员
2019/3/17 20:12:03
1楼: 有C#的样例吗?有的话把核心功能C#封装到DLL文件中,然后供Delphi程序调用。
----------------------------------------------
-
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/3/17 20:16:56
2楼: 有 C# ,Python,Java,PHP  的样例,我是想用到 移动端的,所以 不能 用 DLL。
----------------------------------------------
-
作者:
男 janker (janker) ★☆☆☆☆ -
盒子活跃会员
2019/3/17 22:30:39
3楼: 不是用INDY就行?
----------------------------------------------
-
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/3/17 22:50:28
4楼: 我相信用 Indy ,用 RestRequest + RestClient ,用 NetHttpClient 都能行。
问题就是 具体怎么设置 哪些 参数。
----------------------------------------------
-
作者:
男 glwang (glwang) ★☆☆☆☆ -
盒子活跃会员
2019/3/18 8:42:28
5楼: 可以参考C#示例,我曾经把一个C#项目成功转换成了Delphi,毕竟这2个语言都是同父异母,Delphi移动端参考:
      IdHTTP:= TIdHTTP.Create(nil);
   IdHTTP.Request.Connection:='Keep-Alive';
   IdHTTP.Request.UserAgent:='Mozilla/5.0 (Linux; U; Android 6.0; zh-cn; NEM-AL10 Build/HONORNEM-AL10) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';//'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)';
   IdHTTP.Request.ContentType:='application/x-www-form-urlencoded';
   IdHTTP.Request.Referer:='http://api.xfyun.cn/v1/service/v1/image_identify/face_verification';
   IdHTTP.Request.Accept:='image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*';
   IdHTTP.Request.AcceptLanguage:='zh-cn';
  // IdHTTP.Request.AcceptEncoding:='gzip, deflate';
   IdHTTP.Request.CacheControl:='no-cache';
   IdHTTP.ReadTimeout:=60000;
   IdHTTP.HTTPOptions:=IdHTTP.HTTPOptions+[hoKeepOrigProtocol];
   IdHTTP.ProtocolVersion:=pv1_1;
   streamWriter := TStringStream.Create('',TEncoding.UTF8);
----------------------------------------------
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2019/3/18 8:56:03
6楼: 4楼 楼主你说得对。
既然你都知道,哪还等什么?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 looper (keyo) ★☆☆☆☆ -
盒子活跃会员
2019/3/18 9:12:19
7楼: 先用c#的,把各种串的值弄出来。

然后delphi,用Delphi Cross Socket,应该很容易的。MD5,HASH这些都没有太大难度。主要是没有现成的,要自己去写。这种东西伸手拿不到。
----------------------------------------------
虽千万人吾往矣!
作者:
男 comeheres (tomorrow) ▲▲▲▲▲ -
普通会员
2019/3/18 10:02:38
8楼: 看Python的代码,也很一目了然,其实就是一个POST提交。如果不确定哪里参数出错,安装下python3(比装C#方便很多),下官方demo,再改授权认证和提交参数,最后抓包比对分析下就行。
----------------------------------------------
业余编程爱好者
作者:
男 feiyanm (feiyanm) ▲▲▲▲▲ -
普通会员
2019/3/18 12:54:55
9楼: 看了一下php代码,感觉。。。
算了。。。
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/3/18 13:54:42
10楼: 我 把 官方 提供的 C# 和 Python的样例 都运行了
都是可以正确返回内容的

但是 我发现 在 Python 中 用的是 JSON 对象传递 给 body 的
          在 C# 中,用的是 & 符号 连接的两个照片的 base64

奇怪,在 Delphi 中 到底 按照 什么传递。
----------------------------------------------
-
作者:
男 comeheres (tomorrow) ▲▲▲▲▲ -
普通会员
2019/3/18 15:08:21
11楼: 我试了下,没有问题,窗口上放个Button、NetHTTPClient、Memo,代码如下,仅供参考,忽略了异常处理等


uses
  DateUtils, NetEncoding, Hash;

function PicToBase64(PicDir: string): string;
var
  FS: TFileStream;
  SS: TStringStream;
begin
  FS := TFileStream.Create(PicDir, fmOpenRead);
  SS := TStringStream.Create;
  try
    TNetEncoding.Base64.Encode(FS, SS);
    Result := SS.DataString;
  finally
    FS.Free;
    SS.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  xf_url: string = 'http://api.xfyun.cn/v1/service/v1/image_identify/face_verification';
  x_appid: string = '改成自己的';
  api_key: string = '改成自己的';
var
  x_time, x_param, x_checksum: string;
  DoMD5: THashMD5;
  RequestList: TStringList;
  Response: IHttpResponse;
begin
  x_time := IntToStr(DateTimeToUnix(Now) - 8 * 60 * 60);
  x_param := TNetEncoding.Base64.EncodeBytesToString(bytesof('{"auto_rotate": true}'));
  x_checksum := LowerCase(DoMD5.GetHashString(api_key + x_time + x_param));

  NetHTTPClient1.CustomHeaders['X-Appid'] := x_appid;
  NetHTTPClient1.CustomHeaders['X-CurTime'] := x_time;
  NetHTTPClient1.CustomHeaders['X-CheckSum'] := x_checksum;
  NetHTTPClient1.CustomHeaders['X-Param'] := x_param;

  RequestList := TStringList.Create;
  RequestList.Add('first_image=' + PicToBase64('11.jpg'));
  RequestList.Add('secon_d_image=' + PicToBase64('22.jpg'));
  Response := NetHTTPClient1.Post(xf_url, RequestList);
  Memo1.Text := Response.ContentAsString;
  RequestList.Free;
end;


按此在新窗口浏览图片
----------------------------------------------
业余编程爱好者
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2019/3/18 15:28:06
12楼: 顶 楼上。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2019/3/18 16:32:59
13楼: 感谢,感谢。comeheres (tomorrow),你是 Delphi 的 tomorrow。
感谢。
----------------------------------------------
-
作者:
男 lsz100 (lsz) ★☆☆☆☆ -
盒子活跃会员
2019/3/19 18:14:19
14楼: 这个讯飞人脸识别是怎样做的 中调用他的WEBAPI吗 我POST要提交什么数据,返回的是什么数据
----------------------------------------------
我为人人为我
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS