I have the following URL which I want use to access the content in a remote Apache Tomcat server from a C-based client:

char url[] = "POST /myDir HTTP/1.1\x0D\x0AContent-Type: text/xml\x0D\x0AContent-Length:60\x0D\x0A\x0D\x0A<root><mygreeting>Hello, World!</mygreeting></root>\r\n";

However, I get the response "HTTP/1.1 505 HTTP Version Not Supported". I have googled and found that this may be due to character encoding of the url. So I am asking how can the contents of my array url be encoded in C so that it can be correctly interpreted by Tomcat.

I notice you don't specify an encoding, which means you're using the default. Unless you changed it in Tomcat's configuration it should be compatible with C's character type, but you can force the content type to be extra safe: "Content-Type: text/xml; charset=ISO-8859-1" .

There are a number of factors at work here, so give that a go and reply if it doesn't work.

Thank you Narue. I have tried your suggestion but unfortunately I get the same server response.

Correct me if I am wrong, but for me HTTP Version Not Supported means exactly what it says: HTTP version (1.1 in your case) is not supported. Try HTTP/1.0 instead.

Thats what came to my mind the first time I got that response, nezachem, but since using HTTP/1.0 or HTTP/1.1 returns same response I made further research and found that this MAY BE due to Tomcat url enconding.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.