On Jun 17, 2009, at 7:33 PM, Michael Andrews wrote:
> Hi Paul,
>
> Thanks for your quick reply.
>
>> Hi Michael,
>>
>> The media type "text/plain;javascript" is not a valid media type as
>> defined by the HTTP 1.1 specification [1].
>>
>> Parameters require a value. Note that content negotiation will only
>> take into account the type and subtype of the media type and not any
>> parameters.
>
> I figured as much, but I have little control over enforcing the
> specification since it is an external URI.  Basically the service  
> returns
> 'application/json' except that it is labeled 'text/ 
> plain;javascript'.  Is
> there a technique in the API to rewrite this header before the Client
> assigns a Provider?
>
Yes, you can utilize a filter to modify the Content-Type from "text/ 
plain;javascript" to a well formed media type:
   
https://jersey.dev.java.net/nonav/apidocs/1.1.0-ea/jersey/com/sun/jersey/api/client/filter/ClientFilter.html
and you can add an instance of your filter to the Client or  
WebResource using the addFilter method.
In your filter you can set the Content-Type by getting the headers.
      class AppClientFilter extends ClientFilter {
          public ClientResponse handle(ClientRequest cr) {
              // Call the next client handler in the filter chain
              ClientResponse resp = getNext().handle(mcr);
              String contentType = resp.getHeaders().getFirst("Content- 
Type");
              String newContentType = ...
              resp.getHeaders().putSingle("Content-Type",  
newContentType);
              return resp;
          }
      }
Paul.