private Request newRequest(
     ILocator locator, IContext context, Document document, String methodName) throws IOException {
   context.setContentType("text/xml; charset=\"UTF8\""); // $NON-NLS-1$
   if (document == null)
     return new Request(methodName, URLEncoder.encode(new URL(locator.getResourceURL())), context);
   RequestBodyWriter writer = new RequestBodyWriter(document, "UTF8"); // $NON-NLS-1$
   return new Request(
       methodName, URLEncoder.encode(new URL(locator.getResourceURL())), context, writer);
 }
 /** @see IServer#bind(ILocator, ILocator, IContext) */
 public IResponse bind(ILocator source, ILocator destination, IContext userContext)
     throws IOException {
   Assert.isNotNull(source);
   Assert.isNotNull(destination);
   Assert.isNotNull(userContext);
   IContext context = newContext(userContext, source);
   context.setDestination(URLEncoder.encode(destination.getResourceURL()));
   Request request = newRequest(source, context, "BIND"); // $NON-NLS-1$
   return httpClient.invoke(request);
 }
 private Request newRequest(ILocator locator, IContext context, String methodName)
     throws IOException {
   return new Request(methodName, URLEncoder.encode(new URL(locator.getResourceURL())), context);
 }