Hi Steve,

Thank you for your reply. I understand it isn't the most heavily used functionality, so when I got no replies I did change the source code. To all call functions I added a variable 'Host', which is passed to the actual HTTP call, where I simply replaced the hardcoded value of "localhost:8800" by the variable Host. It works fine for me, and the changes were small enough to not let other people put too much effort in finding better solutions. A more general solution where a host can be set, and if not, a default value is used, would be a cleaner solution.


2010/1/28 Steve Vinoski <vinoski@ieee.org>

2010/1/26 Stéphan Kempkes <stephan.kempkes@gmail.com>


I am trying to interact with a webservice in the same way as in the example to the weather service. The weather service works fine, but the webservice I am trying seemed to give an HTML response, so I sniffed the request, which was a 404 ("Apache/2.0.54 (Fedora) Server at localhost Port 8800"). I connected to that same webservice using C#, which worked, and sniffed that request. The only difference I notice is that with C#, the correct host is sent in the HTTP headers, while when using Yaws SOAP, the host is set to "localhost:8800".

Apparently the host and port are hardcoded in yaws_soap_lib.erl:inets_request/7. Last September Anton marked this as a bug, but I cannot find any replies or clean solutions. I do not want to hardcode the correct host, as several different hosts need to be used. Is there a way to not touch Yaws' source code and still set the host header?

Hi Stéphan, not sure neither Klacke nor I are all that knowledgeable about this area, hence the lack of replies.

I agree it sounds like a bug. Let me look into it a bit and get back to you.