|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2020/5/8 17:55:20 |
标题: |
太诡异的问题了,idHttp.post的问题! |
浏览:857 |
|
加入我的收藏 |
楼主: |
程序一直好好的,用了大半年,跟一个服务做了一个接口,使用idHttp.post,一直都稳定,今天突然发生错误,post后返回:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=utf-8"/><title>错误</title></head><body><H2>错误</H2><table summary="Error" border="0" bgcolor="#FEEE7A" cellpadding="0" cellspacing="0" width="400"><tr><td><table summary="Error" border="0" cellpadding="3" cellspacing="1"><tr valign="top" bgcolor="#FBFFDF" align="left"><td><STRONG>错误</STRONG></td></tr><tr valign="top" bgcolor="#FFFFFF"><td>此页无法显示。更多信息请联系技术支持部门。<br/>事件 ID 为:N/A.</td></tr></table></td></tr></table></body></html>
因为一直没有动程序,所以我严重怀疑是接口方的问题 诡异的问题是: 我把地址,post的数据内容,放在postman中运行,却一切正常!!!!!!
检查了Head没有什么内容,postman都是默认,直接写好地址,写好body内容,post不需要设置任何东西,一点问题没有! 我Delphi里是这样的:
IdC2bFreeze_tmp := TIdAntiFreeze.Create(nil); if LowerCase(LeftStr(Core_yoloC2b.c2b_addr, 5)) = 'https' then tmpSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil); RespData := TStringStream.Create('', TEncoding.UTF8); PostData := TStringStream.Create(sPostDatainfo, TEncoding.UTF8); try IdC2bFreeze_tmp.OnlyWhenIdle := False; if LowerCase(LeftStr(Core_yoloC2b.c2b_addr, 5)) = 'https' then tmphttp.IOHandler := tmpSSL; tmphttp.Request.ContentType := 'application/json'; tmphttp.Request.CharSet := 'utf-8'; tmphttp.Response.CharSet := 'utf-8'; tmphttp.Request.Connection := 'keep-alive'; tmphttp.Request.CacheControl := 'no-cache'; try tmphttp.Post(Core_yoloC2b.c2b_addr, PostData, RespData); except on e: exception do begin //日志 end; end; Result := RespData.DataString; finally tmphttp.Disconnect; FreeAndNil(IdC2bFreeze_tmp); if LowerCase(LeftStr(Core_yoloC2b.c2b_addr, 5)) = 'https' then FreeAndNil(tmpSSL); FreeAndNil(RespData); FreeAndNil(PostData); end;
没什么特殊的呀?使用了https,我在单元里也初始化了ssl,这点应该没问题。 请大侠协助一下,抓住这个鬼!!!
----------------------------------------------
- |
作者: |
|
2020/5/8 19:40:58 |
1楼: |
如果没有更换过INDY重编译的话,问题还是出现在REQUEST参数上,再仔细点一个个参数核对吧。POST内容先用简单的纯英文内容作测试。
----------------------------------------------
-
|
作者: |
|
2020/5/8 19:45:04 |
2楼: |
用postman-echo.com仔细对比一下成功和失败的request参数
----------------------------------------------
-
|
作者: |
|
2020/5/8 20:54:13 |
3楼: |
就是对方的问题,它修改了一些参数导致的。只要REST不起作用,通常会返回一个网页(而不是所需要的信息),而且这个网页通常是错误的网页。何况你之前大半年都没问题,那就更确定是这种问题了。
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
blbz (冰力不足) |
★☆☆☆☆ |
-
|
禁用账号 |
|
2020/5/9 7:26:11 |
4楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
SPAM
|
作者: |
bjlg (蓝天) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/5/9 9:38:16 |
5楼: |
有可能是UA的问题
----------------------------------------------
http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
|
作者: |
|
2020/5/9 10:08:05 |
6楼: |
很明显是服务器那边改动了,返回的你可以粘贴到一个HTML文件里,返回的是个页面加错误信息。
----------------------------------------------
简单做人,认真做事。
|
|