DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: sprblck
今日帖子: 9
在线用户: 13
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
女 samllgo (李清文) ★☆☆☆☆ -
普通会员
2015/11/12 10:44:01
标题:
我写了很多方法。取得网站内容在本地测试很成功。 浏览:1572
加入我的收藏
楼主: 本地也是很正常,HttpGet,Idhttp,
放到服务器server2012  上无响应。

功能是这样24小时监控,如果网站 http://98sky.com/data.php ;取不到返回内容我会重启IIS
然后我找了一个没有插件的网站问题还是一样

function GetUrlContent(const Url: string): string;
    var
      NetHandle: HINTERNET;
      UrlHandle: HINTERNET;
      Buffer: array[0..1024] of Char;
      BytesRead: dWord;
    begin
      Result := '';
      NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

      if Assigned(NetHandle) then
      begin
        UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

        if Assigned(UrlHandle) then
          { UrlHandle valid? Proceed with download }
        begin
          FillChar(Buffer, SizeOf(Buffer), 0);
          repeat
          Result := Result + Buffer;
          FillChar(Buffer, SizeOf(Buffer), 0);
          InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
          until BytesRead = 0;
          InternetCloseHandle(UrlHandle);
        end
        else
          { UrlHandle is not valid. Raise an exception. }
          raise Exception.CreateFmt('Cannot open URL %s', [Url]);

        InternetCloseHandle(NetHandle);
      end
      else
        { NetHandle is not valid. Raise an exception }
        raise Exception.Create('Unable to initialize');
    end;
此帖子包含附件:
JPEG 图像
大小:177.6K
----------------------------------------------
久吧天空,每天必上的一个网站 http://www.98sky.com
作者:
女 samllgo (李清文) ★☆☆☆☆ -
普通会员
2015/11/12 10:49:10
1楼: 服务器上是这样返回不了结果

有没有人尝试过怎么写。
此帖子包含附件:
JPEG 图像
大小:93.2K
----------------------------------------------
久吧天空,每天必上的一个网站 http://www.98sky.com
作者:
男 kx525252 (kx525252) ★☆☆☆☆ -
普通会员
2015/11/12 15:09:10
2楼: 这叫写了很多方法?
问题可以排查啊
----------------------------------------------
-
作者:
男 xuchuantao (暗黑天使) ★☆☆☆☆ -
普通会员
2015/11/12 22:51:17
3楼: IE的安全配置关了没有?,没有就关了再试。
----------------------------------------------
按此在新窗口浏览图片
作者:
男 letianwuji (大器晚成) ▲▲▲▲▲ -
普通会员
2015/11/13 0:06:29
4楼: 防火墙默认在2003系统下是启动的。
还有winhttp控件,可以模拟IE获取网页...比idhttp好用。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
作者:
男 crystalmoon (crystalmoon) ★☆☆☆☆ -
盒子活跃会员
2015/11/13 9:07:10
5楼: 顶2楼,服务器的防火墙设置、程序的兼容性设置等等都可能会造成这些问题。其实如果本地能成功调试,就可以排除纯代码方面的问题。而应该转到服务器本身的设置方面去考虑了。
你首先可以试着在服务器上的IE上是否能打开这个链接再说吧。
----------------------------------------------
-
作者:
女 samllgo (李清文) ★☆☆☆☆ -
普通会员
2015/11/13 9:21:28
6楼: 都不是啦。服务器上什么没装。 服务器本身没什么问题。

我新写了一个 HttpClient 实现现已经正常,谢谢大家回复, 结贴了。
大概代码是这样
get TStringStream

var
  ss:TStringStream;
begin
  Result:='';
  ss:=TStringStream.Create;
  try
    Get(URL,SS);
    Result:=ss.DataString;
  finally
    ss.Free;
  end;

request

    P:=FHttp.ResStream ;
    W:=VarType(P);
    if w = varUnknown then
    begin
      iu:=IUnknown(P);
      iu.QueryInterface(IStream_GUID,s);
    end;
    if s=nil then
      Exit;
    res.Position:=0;
    os:=TOleStream.Create(s);
    try
      os.Position:=0;
      res.CopyFrom(os,os.Size)
    finally
      os.Free
    end;
----------------------------------------------
久吧天空,每天必上的一个网站 http://www.98sky.com
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行101.5625毫秒 RSS