[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HTTP/1.1 405 Method not allowed

Sender: Scott Klement <sk@xxxxxxxxxxxxxxxx>

I get "HTTP/1.1 405 Method not allowed" when i try this (rpg code) on port 8080, but it works with Internet Explorer Url: http://demo.geomatikk.no:8080/SB1SF/servlet/GeoLocator2?PLACENAME=Nedreveien&HOUSENO=28&MUNICIPALITY=STAVANGER

Unless you put this URL in a <FORM METHOD=POST> HTML tag, Internet Explorer won't use the POST method. It'll use the GET method.

If you want to try to do the same thing in HTTPAPI, you also need to use the GET method. To do that, remove the "http_url_post_raw" from your code, and replace it with this:

      c                   eval       rc=http_url_get_raw(
      c                               'http://demo.geomatikk.no:8080' +
      c                               '/SB1SF/servlet/GeoLocator2?' +
      c                                %trim(data):
      c                                1: %paddr('INCOMING'))

This will behave more like the way Internet Explorer does.

Also, you're not encoding your variable data. This won't cause a problem with the particular example that you sent to the mailing list because the words "Nedreveien", "28" and "STAVANGER" are all URL-friendly words.

However, I urge you to encode your data. If you ever have a placename like "New York" where there's a space in the middle, your code won't work unless you encode the data. Similarly, if you ever have &, +, =, or / characters in the data, it won't work unless it has been encoded. Depending on the way the server was written, there are a few other characters as well.

Please use the encoder. That's what it's for.

When I switch to port 8081 in the rpg, it works fine. But now it does not work with Internet Explorer url: http://demo.geomatikk.no:8081/SB1SF/servlet/GeoLocator2?PLACENAME=Nedreveien&HOUSENO=28&MUNICIPALITY=STAVANGER

I'm not in a position to know anything about the way the people at demo.geomatikk.no have set up their services.

I suspect that they've put GET requests on port 8080, and POST requests on port 8081. This seems like a strange thing to do, but I assume they had their reasons?

It must be a http server config problem, or?

I don't think it's a "problem", per se. Just an unusual way to do things. The genuine problem is that you're using a POST request from HTTPAPI when the server expects a GET request, and vice-versa when working with IE.

This is the FTPAPI mailing list.  To unsubsribe from the list send mail
to majordomo@xxxxxxxxxxxxx with the body: unsubscribe ftpapi mymailaddr