3

Android フォンにインストールしたい Delphi XE6 アプリケーションがあります。Windows プラットフォームでテストしています。以下は私のユニットのソースコードです。私のフォームには、ボタン、idHttp Indy ツール、およびメモ フィールドがあります。

問題は、ボタンをクリックするとエラーが発生することです

HTTP/1.1 403 禁止。

しかし、ブラウザからサイトにアクセスできるので、そのページは禁止されていません。誰でも問題を確認できますか?

firemonkey と delphi を使用して投稿リクエストを行う方法を検索したところ、次のリンクが見つかりました。

どれも私を助けません。

unit Start_Interface_u;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  FMX.Layouts, FMX.Memo;

type
  TForm1 = class(TForm)
    btnLogin: TButton;
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    procedure btnLoginClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

  {$R *.fmx}


  procedure TForm1.btnLoginClick(Sender: TObject);
  Var
    sResult: String;
    DataToSend :TStringList;
  begin

  DataToSend := TStringList.Create;
  //DataToSend.Add('login_email=some_email');
  //DataToSend.Add('login_pass=some_password');
  IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';

  Memo1.Lines.Add(idHTTP1.Post('http://mysite.co.za/dash.php', DataToSend));

  end;

end.
4

2 に答える 2

0

403HTTP レイヤー認証が欠落しているか、誤った資格情報を送信していることを意味します。TIdHTTPHTTP 認証を処理するためにプラグイン アーキテクチャを使用します。NTLM や Digest など、Indy がサポートする必要な HTTP 認証を有効にするには、句にさまざまなIdAuthentication...ユニットまたはユニット を追加する必要があります。サーバーが複数のタイプをサポートしている場合に使用する認証タイプをより細かく制御するためのイベントと、サーバーが要求するたびに新しい資格情報の入力を求めるイベントもあります。IdAllAuthenticationsusesTIdHTTP.OnSelectAuthorizationTIdHTTP.OnAuthorization

于 2014-05-20T15:06:42.340 に答える
0

たとえば、一般的なWebブラウザーをシミュレートするようにユーザーエージェントを設定しようとします(この回答から取得)

Request.UserAgent := 
      'Mozilla/5.0 (Windows NT 5.1; rv:2.0b8) Gecko/20100101 Firefox/4.0b8';
于 2014-05-20T10:42:59.990 に答える