James Adams
2009-08-20 16:30:30 UTC
I'm having trouble getting a question mark to encode correctly (or to go
through unencoded, not sure what really I need to do here), resulting in a
404 even though the resource is actually available.
I have client code which looks like this:
try
{
return webResource.path("physical_hosts" +
URLEncoder.encode("?", "UTF-8") + "fqdn=" + fqdn)
.accept(DEFAULT_MEDIA_TYPE)
.header(HTTP_AUTHORIZATION_HEADER,
authorizationHeader)
.header(CLIENT_SPECIFICATION_HEADER,
CLIENT_SPECIFICATION_VERSION)
.get(PhysicalHostModel.class);
}
catch (UniformInterfaceException ex)
{
throw ErrorsHelper.asException(ex.getResponse());
}
It always results in a UniformInterfaceException which tells me this:
com.sun.jersey.api.client.UniformInterfaceException: GET
http://localhost:8080/myapp/resources/physical_hosts%3Ffqdn=xyz.abc.com
returned a response status of 404
I get the same result if don't use the encode() method on the question mark,
so it appears that I'm already getting URL encoding by default.
However I can get to the resource without error via a browser GET if I use
the URL with the question mark intact:
http://myhost.abc.com:8080/myapp/resources/physical_hosts?fqdn=xyz.abc.com
Do I want to do the encoding as I have above (or let the WebResource.path()
method do it for me, as it appears to be when I don't use
URLEncoder.encode())? If not then how can I suppress the encoding so that
the question mark stays intact in the URL?
Thanks in advance for any suggestions, insight, etc.
--James
through unencoded, not sure what really I need to do here), resulting in a
404 even though the resource is actually available.
I have client code which looks like this:
try
{
return webResource.path("physical_hosts" +
URLEncoder.encode("?", "UTF-8") + "fqdn=" + fqdn)
.accept(DEFAULT_MEDIA_TYPE)
.header(HTTP_AUTHORIZATION_HEADER,
authorizationHeader)
.header(CLIENT_SPECIFICATION_HEADER,
CLIENT_SPECIFICATION_VERSION)
.get(PhysicalHostModel.class);
}
catch (UniformInterfaceException ex)
{
throw ErrorsHelper.asException(ex.getResponse());
}
It always results in a UniformInterfaceException which tells me this:
com.sun.jersey.api.client.UniformInterfaceException: GET
http://localhost:8080/myapp/resources/physical_hosts%3Ffqdn=xyz.abc.com
returned a response status of 404
I get the same result if don't use the encode() method on the question mark,
so it appears that I'm already getting URL encoding by default.
However I can get to the resource without error via a browser GET if I use
the URL with the question mark intact:
http://myhost.abc.com:8080/myapp/resources/physical_hosts?fqdn=xyz.abc.com
Do I want to do the encoding as I have above (or let the WebResource.path()
method do it for me, as it appears to be when I don't use
URLEncoder.encode())? If not then how can I suppress the encoding so that
the question mark stays intact in the URL?
Thanks in advance for any suggestions, insight, etc.
--James
--
View this message in context: http://n2.nabble.com/URL-encoding-of-a-question-mark-to-start-a-query-parameter-string-tp3480197p3480197.html
Sent from the Jersey mailing list archive at Nabble.com.
View this message in context: http://n2.nabble.com/URL-encoding-of-a-question-mark-to-start-a-query-parameter-string-tp3480197p3480197.html
Sent from the Jersey mailing list archive at Nabble.com.