GIDForums  

Go Back   GIDForums > Computer Programming Forums > C++ Forum
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 01-Nov-2007, 01:53
Mario Mario is offline
New Member
 
Join Date: Nov 2007
Posts: 1
Mario is on a distinguished road

http request Problem using tomcat - axis & BCB


Hi, I need help here

I'm working on a c++ application that send http request to a web service that run using apache tomcat - axis. I made a simple servlet that post parameter it accepted on a log file, I made a c++ application too, to check if the application can connect to the web service.

But the problem is, when I connect to the web service using browser, it will run smoothly. But when I post / send http request using the application, it return an error message.
HTTP/1.1 500 Internal Server Error

Somebody help me please


The application code that I use, taken from c++ builder help.
CPP / C++ / C Code:
Example

To recreate this example, you will need to create a new blank CBuilder++ application.

Place 4 TMemos, a TEdit, a TOpenDialog, a TNMHTTP, and 7 TButtons on the form.

Component Descriptions

Memo1: Header Display
Memo2: Body Display
Memo3: Status Display
Memo4: Cookie Display
Edit1: URL input
Button1: HTTP Get
Button2: HTTP Head
Button3: HTTP Options
Button4: HTTP Trace
Button5: HTTP Put
Button6: HTTP Post
Button7: HTTP Delete


Insert the following code into Button1's OnClick event:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  NMHTTP1->Get(Edit1->Text);
}

When Button1 is clicked, the Get method is used to retrieved the document at the address specified by Edit1. Both the document body and the document header are retrieved.


Insert the following code into Button2's OnClick event:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  NMHTTP1->Head(Edit1->Text);

}

When Button2 is clicked, the Head method is used to retrieve the header of the document at the address specified by Edit1.


Insert the following code into Button3's OnClick event:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
  NMHTTP1->Options(Edit1->Text);
}

When Button3 is clicked, the HTTP options for the document at the address in Edit1 are retrieved using the Options method. Note: Not all servers support the Options method.

Insert the following code into Button4's OnClick event:

void __fastcall TForm1::Button4Click(TObject *Sender)
{
  AnsiString S;
  if (InputQuery("Trace Data Required", "Input data to send as trace", S))
    NMHTTP1->Trace(Edit1->Text, S);
}

When Button4 is clicked, the InputQuery function is used to get data from the user to use as trace data. If the user inputs data and clicks Ok, the Trace method sends the data to the server as trace data.

Insert the following code into Button5's OnClick event:

void __fastcall TForm1::Button5Click(TObject *Sender)
{
  if (OpenDialog1->Execute())
    {
      NMHTTP1->OutputFileMode = TRUE;
      NMHTTP1->Put(Edit1->Text, OpenDialog1->FileName);
      NMHTTP1->OutputFileMode = FALSE;
    }
}

When Button5 is clicked, OpenDialog1 prompts for a file. If a file is selected, the OutputFileMode property is set to TRUE, so that the data to be put will be read from the file specified. The Put method is used to store the file at the address specified by Edit1. When the file is put, the OutputFileMode property is returned to FALSE.

Insert the following code into Button6's OnClick event:

void __fastcall TForm1::Button6Click(TObject *Sender)
{
  AnsiString S;
  if (InputQuery("Post Data Required", "Input data to Post", S))
    NMHTTP1->Post(Edit1->Text, S);
}

When Button6 is clicked, the InputQuery function is used to retrieve the data to be posted. If the Ok button is clicked, the data that was input is posted using the Post method to the document specified by the address in Edit1.

Insert the following code into Button7's OnClick event:

void __fastcall TForm1::Button7Click(TObject *Sender)
{
  NMHTTP1->Delete(Edit1->Text);
}

When Button7 is clicked, the Delete method attempts an HTTP Delete of the document specified by the address in Edit1.

	
Insert the following code into NMHTTP1's OnAuthenticationNeeded event:

void __fastcall TForm1::NMHTTP1AuthenticationNeeded(TObject *Sender)
{
  AnsiString AnID, APass;

  InputQuery("Authentication required", "Enter a user ID", AnID);
  InputQuery("Authentication required", "Enter a password", APass);
  NMHTTP1->HeaderInfo->UserId = AnID;
  NMHTTP1->HeaderInfo->Password = APass;
  ShowMessage("Authentication information in place, please retry the previous command");
}

If basic authentication is used to access the document specified by the address in Edit1, the OnAuthenticationNeeded event is called. In this example, the InputQuery function is used to retrieve a user ID and password. These values are then stored in the UserId and Password properties of the HeaderInfo property (See the THeaderInfo reference). A message is shown to the user asking them to attempt the HTTP transaction again once the password and user id are in place.

Insert the following code into NMHTTP1's OnFailure event:

void __fastcall TForm1::NMHTTP1Failure(CmdType Cmd)
{
  Memo1->Text = NMHTTP1->Header;
  Memo2->Text = NMHTTP1->Body;
  switch(Cmd)
    {
      case CmdGET: Memo3->Lines->Add("HTTP GET Failed");
      case CmdPOST: Memo3->Lines->Add("HTTP Post Failed");
      case CmdHEAD: Memo3->Lines->Add("HTTP HEAD Failed");
      case CmdOPTIONS: Memo3->Lines->Add("HTTP OPTIONS Failed");

      case CmdTRACE: Memo3->Lines->Add("HTTP TRACE Failed");
      case CmdPUT: Memo3->Lines->Add("HTTP PUT Failed");
      case CmdDELETE: Memo3->Lines->Add("HTTP Delete Failed");
    }
}

When an HTTP command fails, the OnFailure event is called. In this case, the header for the returned error is displayed in Memo1, and the body is displayed in Memo2. Memo3 is updated by checking which command failed using the Cmd parameter, and adding a specific fail message for each of the supported commands.

Insert the following code into NMHTTP1's OnRedirect event:

void __fastcall TForm1::NMHTTP1Redirect(bool &Handled)
{
  if (MessageDlg("This site is redirecting you to another site. Allow redirect?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrNo)
    Handled = TRUE;
}

If the document specified by the address in Edit1 redirects the client to another site for it's content, the OnRedirect event is called. Using the MessageDlg function, the user is asked to allow the redirect. If the user selects No, the Handled parameter is set to TRUE, which prevents the redirect (default action) from taking place. If the user selects Yes, the default action is taken by the component, and the redirected document is loaded.

Insert the following code into NMHTTP1's OnSuccess event:

void __fastcall TForm1::NMHTTP1Success(CmdType Cmd)
{
  if (NMHTTP1->CookieIn != "")
    Memo4->Text = NMHTTP1->CookieIn;
  Memo1->Text = NMHTTP1->Header;
  Memo2->Text = NMHTTP1->Body;
  switch(Cmd)
    {
      case CmdGET: Memo3->Lines->Add("HTTP GET Successful");
      case CmdPOST: Memo3->Lines->Add("HTTP POST Successful");
      case CmdHEAD: Memo3->Lines->Add("HTTP HEAD Successful");

      case CmdOPTIONS: Memo3->Lines->Add("HTTP OPTIONS Successful");
      case CmdTRACE: Memo3->Lines->Add("HTTP TRACE Successful");
      case CmdPUT: Memo3->Lines->Add("HTTP PUT Successful");
      case CmdDELETE: Memo3->Lines->Add("HTTP DELETE Successful");
    }
}

When an HTTP command succeeds, the OnSuccess event is called, signifying the success. In this example, if a cookie is returned from the remote host in the CookieIn property, it is displayed in Memo4. The header and body returned from the server in the Header and Body properties, respectively. The header is displayed in Memo1, and the body is displayed in Memo2. Memo3 acts as a status screen, displaying that the command specified by the Cmd parameter was successful.
 
 

Recent GIDBlogA Week in Kuwait by crystalattice

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
a significant problem after installing Xp mohammad Computer Software Forum - Windows 10 09-Aug-2005 07:03
Problem in connecting tomcat via apache proxy naveed Apache Web Server Forum 0 15-Dec-2004 14:51

Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 16:22.


vBulletin, Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.