标签: idhttp

找出文件的类型(GIF,JPG,PNG) - DELPHI

我正在为每个URL提供图像并显示TImage.我将使用JPG,GIF和PNG.但我不知道如何找出每个文件的扩展名,然后进行区分.我如何获得标题或任何其他方法让我知道什么类型的文件:GIF或PNG或JPG?

var
  MS : TMemoryStream;
  GIf: TGIFImage;
  jpegimg: TJPEGImage;


begin
  MS := TMemoryStream.Create;
  GIf := TGIFImage.Create;
  jpegimg   := TJPEGImage.Create; ///////

  try
      try
        IdHTTP1.get('http://forum.wmonline.com.br/uploads/av-8929.jpg',MS);
        Ms.Seek(0,soFromBeginning);
        //Gif.LoadFromStream(MS);
        //Logo.Picture.Assign(GIF);
        jpegimg.LoadFromStream(MS);
        Logo.Picture.Assign(jpegimg);
      except
        ShowMessage('ERRO');
        Exit;
      end;
  finally
    FreeAndNil(GIF);
    FreeAndNil(MS);
    jpegimg.Free;  ////
  end;
Run Code Online (Sandbox Code Playgroud)

delphi idhttp delphi-xe5

1
推荐指数
1
解决办法
2998
查看次数

如何在delphi 10中使用带有idhttp的线程

我需要帮助加速我的项目,我有2个ListBox,第一个是完整的URL,第二个我存储导致404错误的Listbox1的URL,它只是检查过程.idhttp需要大约2s来检查1个url,我不需要html,因为解密过程需要时间,所以我决定在我的项目中添加线程,到目前为止我的代码

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  IdSSLOpenSSL, Vcl.StdCtrls, IdBaseComponent, IdComponent, 
  IdTCPConnection, IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Button1: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    Button3: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);

 private

 public

 end;

 Type
   TMyThread = class(TThread)
     IdHTTP1: TIdHTTP;
     Button1: TButton;
     ListBox1: TListBox;
     ListBox2: TListBox;
     Button3: TButton;
     Memo1: TMemo;

  private
    fStatusText : string;
    lHTTP: TIdHTTP;

  protected
    procedure Execute; override;
  public
    Constructor Create(CreateSuspended : boolean); …
Run Code Online (Sandbox Code Playgroud)

delphi vcl idhttp delphi-10-seattle

1
推荐指数
1
解决办法
2017
查看次数

当我使用TIdHTTP进行HTTPS调用时,Android 6.0应用程序崩溃

我正在使用Delphi XE8和Indy 10进行Android应用程序开发.我已经使用该TIdHTTP组件进行HTTP/S服务调用.

它在Android 5及更早版本中运行良好,但在Android 6.0中不起作用(当我尝试访问HTTPS协议时).

我尝试过TIdSSLIOHandlerSocketOpenSSL,但当我调用任何服务方法,如PUT,POST,GET时,应用程序仍然崩溃.

请帮帮我.

delphi android indy idhttp boringssl

1
推荐指数
1
解决办法
541
查看次数

使用 IdHttp Indy 连接 SSL 时出错

我在使用 Indy (Delphi) 的 IdHttp 中遇到问题。

我尝试使用 IdHttp 在 Web 服务 SOAP 中发布 XML,但不起作用。返回“使用 SSL 连接时出错。” 在来自 indy 的 IdSSLOpenSSL.Connect@1437 中。

我的代码很简单:

procedure TForm1.Button1Click(Sender: TObject);
var
  vRequest : TStringStream;
  s : String;
begin
  vRequest  := TStringStream.Create((Memo1.Lines.Text));
  try
    IdHTTP1.Host                       := edHost.Text;
    IdHTTP1.Request.ContentLength      := length(Memo1.Lines.Text);
    IdHTTP1.Request.ContentType        := edContentType.Text;
    IdHTTP1.Request.CustomHeaders.Text := 'SOAPAction: "removed for safe"'#13#10;
    IdHTTP1.request.CacheControl       := 'no-cache';
    IdHTTP1.Request.AcceptEncoding     := edAccept.Text;
    IdHTTP1.HTTPOptions                := [hoKeepOrigProtocol];
    IdHTTP1.ProtocolVersion            := pv1_1;

    Memo2.Clear;
    try
      s := IdHTTP1.post(Edit1.Text, vRequest);
      Memo2.Lines.Text := s;
    except
      on e: EIdHTTPProtocolException do begin
        Label1.Caption …
Run Code Online (Sandbox Code Playgroud)

delphi ssl indy delphi-5 idhttp

1
推荐指数
1
解决办法
4110
查看次数

IdHTTP.不等待回答

我在使用Idhttp.Get方法时遇到了一些问题.我认为它默认工作在阻塞模式(等待答案转到下一行),但我只是看到它不等待答案转到另一行.我正在使用它与线程,但我认为这不是问题.代码是:

  IdHTTP1:= TIdHttp.Create(Application);
  IdHTTP1.ConnectTimeout:= 10000;
  IdHTTP1.Request.Clear;
  IdHTTP1.Request.BasicAuthentication:= true;
  IdHTTP1.Request.Username := Username;
  IdHTTP1.Request.Password := Password;
    try
      IdHTTP1.Get(PbxURL); **//this should STOP here and wait for answer don't?**
      HttpCode:= IdHTTP1.ResponseCode;
    except
      on E: EIdHTTPProtocolException do
        HttpCode := IdHTTP1.ResponseCode;
    end;
    if HttpCode=200 then
      Memo1.Lines.Append('Valid Get!');
Run Code Online (Sandbox Code Playgroud)

所以,我只是注意到我没有得到正确的HttpCode值,因为在'Get'方法之后,它只是继续执行而不等待'Get'完成.我怎么解决这个问题??

delphi indy delphi-2010 idhttp

0
推荐指数
1
解决办法
1735
查看次数

停止idhttp.get时的析构函数(indy,delphi)

我的应用程序可以从memo1中的每个URL下载一张图片.它使用idhttp.get并有一个跳过按钮.跳过之后下载下一张图片.

Q1:你有代码放入析构函数,"终止"和"等待"的代码是什么? 我在另一个网站上发现了这个:

destructor thread.destroy;
begin
try
Terminate;
If HTTP.Connected then HTTP.Disconnect;
finally
WaitFor;
FreeAndNil(HTTP);
end;
inherited;
end;
Run Code Online (Sandbox Code Playgroud)

Q2:如何调用析构函数并使其工作?

问题3:您是否有提示(特别是安全问题)和其他代码行?

我的申请代码:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
       thread = class
  public
      Constructor Create; overload;
      Destructor  Destroy; override;
  end;

  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    startbutton: TButton;
    skipbutton: TButton;

    procedure startbuttonClick(Sender: TObject);
    procedure skipbuttonClick(Sender: TObject);
    procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: …
Run Code Online (Sandbox Code Playgroud)

delphi destructor terminate disconnect idhttp

0
推荐指数
1
解决办法
1736
查看次数

Indy Tidhttp 发布 XML 文件的正确编码是什么?

我注意到我在使用 Indy Client 的应用程序中的 XML 文件有无效字符(我实际上使用了 IdHttp 的默认参数)

这是我的代码:

  ts := TStringList.Create;
  try
    ts.Add('XML=' + AXMLDoc.XML.Text));
    HTTPString := IdHTTPClient.Post('http://' + FHost + ':' + IntToStr(FPort) + FHttpRoot, ts);
  finally
    ts.Free;
  end;
Run Code Online (Sandbox Code Playgroud)

我的 XML 文件是 UTF-8 编码的。

我必须做什么才能在我的服务器上获得良好的编码(我也使用 Indy 作为服务器)?

delphi txmldocument idhttp delphi-xe2 delphi-xe4

0
推荐指数
1
解决办法
4027
查看次数

Delphi idhttp破字

我正在使用IDHTTP从事Delphi XE5和从服务器获取XML.获取XML工作正常,但有一些破碎的字符.角色是'•'(子弹点).其他人都很好,但要点已经破裂.

我创建了IDHTTP,如下所示:

idhttps := TIdHTTP.Create();
idhttps.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
idhttps.IOHandler.DefStringEncoding := IndyTextEncoding(TEncoding.UTF8);
idhttps.HandleRedirects := True;
idhttps.ConnectTimeout := 5000;
idhttps.Request.USERNAME := 'USERNAME';
idhttps.Request.PASSWORD := 'PASSWORD';
idhttps.Request.BasicAuthentication := True;
idhttps.Request.Accept := 'text/xml';
Run Code Online (Sandbox Code Playgroud)

然后得到如下的xml:

SS := TStringStream.Create('', TEncoding.UTF8);

try
  self.GetIdHTTPForLexicomp.Get(URL, SS);
  XMLDoc := TXMLDocument.Create(nil);
  XMLDoc.LoadFromStream(SS, TXMLEncodingType.xetUTF_8Like);
finally
  SS.Free;
end;
Run Code Online (Sandbox Code Playgroud)

在XML中,项目符号点如下所示:

?过敏反应/过敏反应:可能引起过敏反应,

XML标题如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)

我该怎么检查?

更新:我添加了XML代码段.它需要一个XSL文件用于样式,但在这种情况下,我认为这不是问题.'?' 是破碎的人物.

<?xml version="1.0" standalone="yes"?>
<ns2:monogragh>
  <monograghFields>
    <field fieldId="234837" fieldTypeCode="war" created="2005-04-07T17:28:33Z" modified="2014-10-02T11:32:57Z" sectionId="0">
      <fieldName>Warnings/Precautions</fieldName>
      <content>
        <div id="war" class="block">
          <p style="text-indent:-2em;margin-left:2em;text-align:justify;">
            <b>
              <i>Concerns related to adverse …
Run Code Online (Sandbox Code Playgroud)

xml delphi encoding idhttp

0
推荐指数
1
解决办法
752
查看次数

IdHttp:如何处理json请求和响应

我曾经遇到过一个使用了几个网站JSON的请求和响应
我遇到两种类型:
1 application/x-www-form-urlencoded请求和返回响应application/json内容类型
2- application/json内容类型请求和响应
type 1我试图用改变的响应内容类型
mIdHttp.Response.ContentType := 'application/json';
,但使用HTTP分析器,我可以看到它没有改变,它text/html
现在仍然不知道问题是否与我无法改变内容类型的事实,但我不知道如何处理json!
关于json以下问题:
1-我必须在发布时对json数据进行编码吗?怎么样 ?
2-我如何解析json响应代码?怎么弄明白?它需要某种编码或特殊转换吗?
3- json的哪种idhttp设置随每个站点的变化而需要配置?

我理解我的问题听起来有点笼统,但所有其他问题都非常具体,并且在处理'application/json'内容类型时没有解释基本知识.

编辑1:
感谢Remy Lebeau 回答我能够成功合作,type 1
但我仍然无法发送JSON请求,有人可以分享一个工作示例,这是发布信息的网站之一,请使用此示例:
在此输入图像描述

一个重要的注意事项: 这个特定网站的帖子和请求内容完全相同!因为在现场,我指定它令我感到困惑start dateend date然后点击一个folder like icon,这post被发送(一个你可以在上面看到),而result应该是links(它是),不是只出现在request content它们也会出现在post!(我也试图获取链接,但在post链接,我想要的东西,也被发送,我怎么能发布我没有的东西!!?)

为了更清楚,这里是我填写日期和我提到的图标的地方:
在此输入图像描述

delphi json idhttp delphi-xe

0
推荐指数
1
解决办法
8740
查看次数

HTTP帖子未完成时表单被阻止

我将JSON发送到端点,我遇到了问题.执行工作正常,但是在HTTP.Post()完成屏幕发布以供使用之后,表单会一直停滞到结束.我确定我做错了什么.

以下是发送JSON的按钮操作:

procedure TForm1.Button1Click(Sender: TObject);
var
  HTTP: TIdHTTP;
  vJsonAEnviar: TStringStream;
  Json:String;
begin
  Json := '{ '+
          ' "user":"Lucy"'+
          ' "execute":"ok"'+
          ' } ';
  HTTP := TIdHTTP.Create;
  HTTP.Request.ContentType := 'application/json';
  HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
  vJsonAEnviar := TStringStream.Create(UTF8Encode(Json));
  HTTP.Post('http://localhost:8080/exportaManual', vJsonAEnviar);
  FreeAndNil(HTTP);
  FreeAndNil(vJsonAEnviar);
end;
Run Code Online (Sandbox Code Playgroud)

另一方面,它需要一段时间才能完成并且屏幕会长时间停留.

delphi json indy idhttp

0
推荐指数
1
解决办法
74
查看次数

检查是否可以使用delphi下载文件

检查是否可以使用delphi下载文件

美好的一天...我在Delphi开始,我正在创建一个从HTTP下载文件的程序...

我正在使用:  

IdHTTP.Get (URL FileDownload)
Run Code Online (Sandbox Code Playgroud)

但是我的程序在无法下载文件时会生成错误...

例如:http://exemplo.com/ - >生成错误

例如:http://exemplo.com/meudownload.ts - >进行下载

我想更正此错误,如何检查是否可以下载该文件或是否正在降低该文件...

我用EIdHTTPProtocolExeption但只检查HTML错误,如:404,300 ......并不是我希望...

我想看看你是否可以下载该文件,或者是否正在下载该文件...

如果发生这种情况,我会下载其他文件:

donw_1.ts,down_2.TS,down_3.TS ......然后当他获得一个无法下载的存档时,我有了取消循环的答案......

delphi idhttp

-1
推荐指数
1
解决办法
1233
查看次数