2012-04-18 7 views
0

Google 데스크톱 응용 프로그램이 게이트웨이를 통해 신용 카드를 실행하기 위해 C#의 webbrowser 컨트롤을 사용하고 있습니다.웹 브라우저 제어 응답 캡처

public Form1() 
{ 
    InitializeComponent(); 

    webBrowser1.Url = new Uri("https://paymentgateway.com/hosted.aspx?" + 
          "Username=dddd" + 
          "&Password=dddd" + 
          "&MerchantKey=5159" + 
          "&BillingAddress1=123 some street" + 
          "&BillingCity=Somewhere" + 
          "&BillingState=SC" + 
          "&BillingZip=39399" + 
          "&CustomerName=me" + 
          "&Amount=392.00" + 
          "&InvNum=123567" + 
          "&AccountNumber=0133333" + 
          "&CustomerId=0199999"); 


} 

(보안상의 이유로 변경에 대한 모든 참조)

페이지는이 같은 같습니다 :

Portal

간단하게, 나는 형태의 부하에 페이지를로드하고 있습니다

내 질문은 처리 버튼을 클릭하면 어떻게 응답합니까? 다음 폼을 닫으시겠습니까? 나는 그것이 승인되었는지 그리고 그 시점의 나머지 정보를 알아야합니다.

버튼을 제어 할 수 없어 응답을 캡처하는 방법을 모르겠습니다.

다시 한번 감사드립니다!

답변

2

당신이 DocumentCompleted 이벤트에 등록하고 문서에 DocumentText 또는 DocumentStream를 통해이 응답을 처리해야 할 것으로 보인다.

출력 내용에 따라 적절하게 반응합니다. 예를 들면 다음과 같습니다.

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    HtmlDocument document = webBrowser1.Document; 
    //now use any of the methods exposed by HtmlDocument to parse the output 
} 
+0

"document"요소에서 HTML과 관련된 모든 것을 가져 오지만 응답을 얻을 수 없습니다. 예 : - 나는 서비스를 부른다. 완료된 이벤트에서 해당 서비스에 대한 응답 데이터를 알아야합니다 (텍스트 뷰 탭에서 피들러의 응답을 볼 수 있음). 어떻게 응답 세부 정보를 얻을 수 있습니까? – Surya

0

양식에서 공용 메서드를 만들어 양식 호출 위치에서 액세스 할 수있는 정보를 얻을 수 있습니다. 이처럼 DialogResult를 == DialogResult.OK에이 메소드를 호출 할 수 있습니다

 object your_info; 

     Form1 form1 = new Form1(); 
     if (form1.DialogResult == DialogResult.OK) 
     { 
      your_info = form1.getInfo(); 
     }