1

TWebBrowser を使用してデータをナビゲートし、Web サーバーに投稿するときに問題が発生します。

何が起こるかというと、最初に投稿データをセットアップしてページに移動すると、すべての情報がうまく渡されます。いくつかの情報を入力し、ボタンをクリックしてリクエストを処理した後、サーバーはリクエストを処理しようとしますが、すべてがフリーズします..

ここに画像の説明を入力

この画面で..奇妙なことに、30回ほど試したうち、2回はうまくいきました。(フリーズせずに通過しました)だから、何が矛盾の原因なのかわかりません。

このデータを生成し、get リクエストを介してサーバーに送信すると、すべてをリンクに入れるだけで、毎回動作します.. Chrome IE などで..

問題は投稿データにあるのではないかと考えたので、TWebBrowser を使用して get リクエストを実行しようとしましたが、それでもフリーズしました。

Browser.WebBrowser1.Navigate('https://test.com/ts/testAPI.asmx/Process?'+EncodedDataString);

また、TWebBrowserを使用しているときに、最初からやり直すボタンを押して、ほとんどの投稿/取得データをクリアし、それをすべて自分で入力してから情報を処理すると、毎回フリーズせずに機能します。

したがって、私が思いつくことができる唯一のことは、TWebBrowser を介してポスト/取得データを送信するときにのみフリーズが発生するように見えるということです...しかし、データが送信されない場合は TWebBrowser で動作します。

サーバーがフリーズしたときに何らかのjqueryまたはjavascriptを実行しようとしていると想定していますが、よくわかりません。

以下は参照用の私のコードです。

EncodedDataString := 'username='+FileForm.Firm.FieldByName('USER').AsString+
'&password='+FileForm.Firm.FieldByName('PASS').AsString+'&action='+action+
'&token='+eToken+'&retname='+HTTPEncode(MaskEditRetName.Text)+
'&retaddress1='+HTTPEncode(MaskEditRetAddr.Text)+
'&retcity='+HTTPEncode(MaskEditRetCity.Text)+
'&retstate='+HTTPEncode(MaskEditRetState.Text)+
'&retzip='+HTTPEncode(MaskEditRetZip.Text)+
'&accountno='+HTTPEncode(MaskEditAccount.Text)+
'&amount='+HTTPEncode(MaskEditAmount.Text)+
'&date='+HTTPEncode(MaskEditDate.Text)+
'&paymenttype='+HTTPEncode(paymentType);

PostData := VarArrayCreate([0, length(EncodedDataString)-1], varByte);

for i := 1 to length(EncodedDataString) do
PostData[i-1] := ord(EncodedDataString[i]);

Headers := 'Content-type: application/x-www-form-urlencoded'#10#13;

Application.CreateForm(TBrowser,Browser);

Browser.WebBrowser1.Silent := True;

Browser.WebBrowser1.Navigate('https://test.com/ts/testAPI.asmx/Process',
     EmptyParam, EmptyParam, PostData, Headers); 
4

0 に答える 0