DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xieqiongxi1
今日帖子: 0
在线用户: 4
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 yesin119 (yesin119) ★☆☆☆☆ -
盒子活跃会员
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,这点应该没问题。
请大侠协助一下,抓住这个鬼!!!
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2020/5/8 19:40:58
1楼: 如果没有更换过INDY重编译的话,问题还是出现在REQUEST参数上,再仔细点一个个参数核对吧。POST内容先用简单的纯英文内容作测试。
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2020/5/8 19:45:04
2楼: 用postman-echo.com仔细对比一下成功和失败的request参数
----------------------------------------------
-
作者:
男 nevergrief (孤独骑士) ★☆☆☆☆ -
盒子活跃会员
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
作者:
男 jackalan (nVicen) ★☆☆☆☆ -
盒子活跃会员
2020/5/9 10:08:05
6楼: 很明显是服务器那边改动了,返回的你可以粘贴到一个HTML文件里,返回的是个页面加错误信息。
----------------------------------------------
简单做人,认真做事。
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行79.58984毫秒 RSS