in reply to Problems sending XML to webserver

I was checking the logs on the payment server ($server), and the requests are going through fine and returning a 200 response. I wrote the XML being returned to a log and it looks fine.
Content-Type: text/xml <?xml version="1.0"?> <PaymentResponse> <PAY_AVS_RESPONSE>Y</PAY_AVS_RESPONSE> <PAY_CVV2_RESPONSE>M</PAY_CVV2_RESPONSE> <PAY_AUTH_RESPONSE>APPROVED</PAY_AUTH_RESPONSE> <PAY_STATUS>1</PAY_STATUS> <PAY_APPROVAL>123456</PAY_APPROVAL> <PAY_RESPONSE>APPROVED</PAY_RESPONSE> </PaymentResponse>
So it now appears that the payment server recieves the request fine, and response fine, but for some reason, when the requesting server recieves the response, something goes wrong, and I have no idea why. Hopefully this extra info will give someone else an idea.

Replies are listed 'Best First'.
Re: Re: Problems sending XML to webserver
by antirice (Priest) on Aug 21, 2003 at 18:35 UTC

    Just wondering, but what server software are you using?

    antirice    
    The first rule of Perl club is - use Perl
    The
    ith rule of Perl club is - follow rule i - 1 for i > 1

      I've narrowed the error message to the following function in Net::HTTP::Methods.
      This is the code. I've added the $headers variable to keep track of the lines. I'm probably missing something, but this one has me boggled. Why is it dieing. $line_count should only be 4 when it dies.
      sub _read_header_lines { my $self = shift; my $junk_out = shift; my @headers; my $line_count = 0; my $max_header_lines = ${*$self}{'http_max_header_lines'}; my $headers = ''; while (my $line = my_readline($self)) { $headers .= "$line_count: $line\n"; if ($line =~ /^(\S+)\s*:\s*(.*)/s) { push(@headers, $1, $2); } elsif (@headers && $line =~ s/^\s+//) { $headers[-1] .= " " . $line; } elsif ($junk_out) { push(@$junk_out, $line); } else { die "Bad header: '$line'\n"; } if ($max_header_lines) { $line_count++; if ($line_count >= $max_header_lines) { die "Too many header lines($line_count) (limit is $max_header_ +lines) They are:\n$headers"; } } } return @headers; }
      Error:
      Too many header lines(128) (limit is 128) They are: 0: Server: Microsoft-IIS/5.0 1: Date: Thu, 21 Aug 2003 20:55:08 GMT 2: Connection: close 3: Use of uninitialized value in concatenation (.) or string
      IIS...I know, I know, but its not my choice.