|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
2017/3/16 16:45:10 |
标题: |
如何使用idhttp的post方式下载一个文件并且得到二进制返回值 |
浏览:1770 |
|
加入我的收藏 |
楼主: |
我下载文件是这样的,但是没法得到返回值(D7+indy10.2.3) 客户提供的说明文档是这样的 ////////// 该接⼝⽤于下载产品所有相关资料 URL:https://host/v2/download/product 访问⽅法: POST 传⼊参数: { "productid":"产品的id", "type": "下载类型" } 返回内容: ⼆进制数据。在返回的HTTP头部存在fileMd5字段,其值为对应⽂件的MD5,可⽤于完整性校验。 ////////// 我现在卡在如何获得这个MD5的校验值? 我下载文件是这样的 var Str:string; vJson, vRet: ISuperObject;
TStream := TMemoryStream.Create; Request:=TStringList.Create; vJson := SO('{"productid":"496a601dbdbaa3ddd0f2a4600e4cbeff","romtype":"product"}'); Request := TStringList.Create; Request.Append(utf8Encode(vJson.AsString)); IdHTTP1.Post(Str,Request,TStream); TStream.SaveToFile('x.zip'); 那么文档里的MD5要如何获取?
----------------------------------------------
只会简单使用,并未精通深入 |
作者: |
|
2017/3/16 19:06:32 |
1楼: |
IdHTTP1.Response.CustomHeaders.Values['fileMd5']
----------------------------------------------
-
|
作者: |
|
2017/3/17 8:37:37 |
2楼: |
这样得到的是为空的,我那个下载是不是正确的呢?虽然是能下载得到文件的
----------------------------------------------
只会简单使用,并未精通深入
|
作者: |
|
2017/3/17 10:25:57 |
3楼: |
终于找到了,是 IdHTTP1.Response.RawHeaders.Values['filemd5'] 谢谢redhan
----------------------------------------------
只会简单使用,并未精通深入
|
|