Keith,
It is illegal to include a plain # character in a HTTP URL. As you can
see from the BNF syntax notation below, the # character is not in the
list of characters that comprise an URL. This means you HAVE TO escape
it (or use a different character if you are in the position to decide that).
RFC 2396, section 4.1 clearly states:
"When a URI reference is used to perform a retrieval action on the
identified resource, the optional fragment identifier, separated from
the URI by a crosshatch ("#") character, consists of additional
reference information to be interpreted *BY THE USER AGENT* after the
retrieval action has been successfully completed. As such, *IT IS NOT
PART OF A URI*, but is often used in conjunction with a URI."
RFC 2616, 3.2.2:
http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
RFC 2396, Appendix A:
abs_path = "/" path_segments
path_segments = segment *( "/" segment )
segment = *pchar *( ";" param )
pchar = unreserved | escaped |
":" | "@" | "&" | "=" | "+" | "$" | ","
query = *uric
uric = reserved | unreserved | escaped
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
unreserved = alphanum | mark
escaped = "%" hex hex
mark = "-" | "_" | "." | "!" | "~" | "*" | "'" |
"(" | ")"
Sorry to have no better news.
Ortwin
keith chapman wrote:
Hi Ortwin,
I wanted to send the # character over the wire as it is. Is there a way
that
I can do it? Or can I set the fragment to the httpMethod?
Thnaks,
Keith
On 3/13/07, Ortwin Glück <[EMAIL PROTECTED]> wrote:
Keith,
The # character is reserved to separate the fragment from the
query/path. The fragment is not intended to be sent over the wire. So if
you want to include such a character in an URI you should URL-escape it
with %23:
http://localhost:8081/axis2/services/ProbeDataService.RawParameterEndpoint/RawParameter%23id
Does that work for you?
Ortwin
keith chapman wrote:
> Hi,
>
> I want to send a http GET request to the followin url
>
>
http://localhost:8081/axis2/services/ProbeDataService.RawParameterEndpoint/RawParameter#id
>
>
> But i have to set a URI to the getMethod.
>
> I have the above as a URL. So I do the following
>
> getMethod.setURI(url.toString);
>
> This rips off the fragment part resulting in the following target URL
>
>
http://localhost:8081/axis2/services/ProbeDataService.RawParameterEndpoint/RawParamete
>
>
> How can I send a fragment in the url?
>
> Thanks,
> Keith
>
--
[web] http://www.odi.ch/
[blog] http://www.odi.ch/weblog/
[pgp] key 0x81CF3416
finger print F2B1 B21F F056 D53E 5D79 A5AF 02BE 70F5 81CF 3416
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
--
[web] http://www.odi.ch/
[blog] http://www.odi.ch/weblog/
[pgp] key 0x81CF3416
finger print F2B1 B21F F056 D53E 5D79 A5AF 02BE 70F5 81CF 3416
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]