That's because what Mohamed is referring is the old (3.x) HttpClient
and not the new (4.x) one which have different (sometime very
different) API.

The main issue you have is probably the fact that XWiki does not ask
the client for credential by default since anonymous access is valid.
That means you need to force preemptive authentication which is very
easy in 3.x (just a call to setAuthenticationPreemptive like in
Mohamed's example) and quite harder in 4.x (they find dangerous to
support it like they used to...).

You can find various examples on Google and the official documentation
is on 
https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html
(section "4.6. Preemptive authentication").

On Mon, Apr 18, 2016 at 3:05 PM, Tobi <gman...@yandex.ru> wrote:
> For some reasons it gives me this
>
> Exception in thread "main" java.lang.NoClassDefFoundError:
> org/apache/commons/logging/LogFactory
>         at 
> org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:65)
>         at RestTest2.getClient(RestTest2.java:16)
>         at RestTest2.main(RestTest2.java:27)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.logging.LogFactory
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 3 more
>
> Code:
>
> import java.io.IOException;
>
> import org.apache.commons.httpclient.HttpClient;
> import org.apache.commons.httpclient.methods.GetMethod;
> import org.apache.commons.httpclient.methods.PutMethod;
> import org.xwiki.rest.model.jaxb.ObjectFactory;
> import org.xwiki.rest.model.jaxb.Page;
> import org.apache.commons.httpclient.methods.PostMethod;
> import org.apache.commons.httpclient.UsernamePasswordCredentials;
> import org.apache.commons.httpclient.auth.AuthScope;
> import org.apache.commons.httpclient.NameValuePair;
>
> public class RestTest2 {
>
>          static HttpClient getClient(String host, int port, String username, 
> String
> password) {
>               HttpClient httpClient = new HttpClient();
>               httpClient.getParams().setAuthenticationPreemptive(true);
>               httpClient.getState().setCredentials(
>                  new AuthScope(host, port, AuthScope.ANY_REALM),
>                  new UsernamePasswordCredentials(username, password)
>               );
>               return httpClient;
>            }
>
>            public static void main(String[] args) throws IOException {
>              // Get request example
>           HttpClient httpClient = getClient("xwiki.aircr.ru", 8080, "Tobi",
>         "gaben1337");
>           GetMethod getMethod = new
> GetMethod("http://xwiki.aircr.ru/xwiki/bin/view/Main/";);
>           getMethod.addRequestHeader("Accept", "application/json");
>               getMethod.setDoAuthentication( true );
>           String getURL = "http://xwiki.aircr.ru/xwiki/bin/view/Main/";;
>               try {
>                   int status = httpClient.executeMethod(getMethod);
>                  System.out.println(getMethod.getResponseBodyAsString());
>                } catch (Exception e) {
>              //...
>           } finally {
>                   // release any connection resources used by the method
>           getMethod.releaseConnection();
>                }
>
>           // Put request example
>           String putURL = "http://xwiki.aircr.ru/xwiki/bin/view/Main/";;
>           PutMethod putMethod = new PutMethod(putURL);
>             putMethod.addRequestHeader("Accept", "application/json");
>             putMethod.setDoAuthentication( true );
>             try {
>                int status = httpClient.executeMethod(putMethod);
>           System.out.println(putMethod.getResponseBodyAsString());
>             } catch (Exception e) {
>                // ...
>           } finally {
>                // release any connection resources used by the method
>           putMethod.releaseConnection();
>             }
>           }
>
> }
>
>
>
> --
> View this message in context: 
> http://xwiki.475771.n2.nabble.com/xWiki-RESTful-HTTP-Connection-tp7599026p7599035.html
> Sent from the XWiki- Users mailing list archive at Nabble.com.
> _______________________________________________
> users mailing list
> users@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users



-- 
Thomas Mortagne
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to