Hi,
You can use the new version of Apache's HTTP library, as follows, hope
it'll help you.
public class RestTest {
/**
* Create and initialize the http client.
*
* @return an HttpClient object
*/
HttpClient getClient(host, port, username, 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(yourHost, yourPort, yourUsername,
yourPassword);
GetMethod getMethod = new GetMethod(getURL);
getMethod.addRequestHeader("Accept", "application/json");
getMethod.setDoAuthentication( true );
String getURL = "your get url";
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 = "your put url";
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();
}
}
}
Best regards,
Mohamed.
On Sun, Apr 17, 2016 at 9:24 PM, Mohamed Boussaa <mohamed.boussaa(a)xwiki.com>
wrote:
Hi,
You can use the new version of Apache's HTTP library, as follows, hope
it'll help you.
public class RestTest {
/**
* Create and initialize the http client.
*
* @return an HttpClient object
*/
HttpClient getClient(host, port, username, 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(yourHost, yourPort, yourUsername,
yourPassword);
GetMethod getMethod = new GetMethod(getURL);
getMethod.addRequestHeader("Accept", "application/json");
getMethod.setDoAuthentication( true );
String getURL = "your get url";
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 = "your put url";
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();
}
}
}
Best regards,
Mohamed.
On Sun, Apr 17, 2016 at 7:25 PM, Tobi <gman007(a)yandex.ru> wrote:
Hello,
I was trying to write a program which would upload new pages on my wiki. I
was following these instructions
http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI , but
unfortunately most of the examples use old version of Apache's HTTP
library,
so they are not very useful for me.
So I decided to try writing a program by following Apache's examples, but
when I was testing connectivity I realised that I can't even get access to
admin-only pages.
Here's my code:
import java.io.IOException;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class RestTest {
public static void main(String[] args) throws IOException {
CredentialsProvider credsProvider = new
BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT,
AuthScope.ANY_REALM, AuthScope.ANY_SCHEME),
new UsernamePasswordCredentials("Tobi", "mypass"));
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCredentialsProvider(credsProvider)
.build();
try {
HttpGet httpget = new
HttpGet("http://xwiki.aircr.ru/xwiki/bin/edit/Main/WebHome");
System.out.println("Executing request " +
httpget.getRequestLine());
CloseableHttpResponse response = httpclient.execute(httpget);
try {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
EntityUtils.consume(response.getEntity());
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
}
It gives me:
Executing request GET
http://xwiki.aircr.ru/xwiki/bin/edit/Main/WebHome
HTTP/1.1 <http://xwiki.aircr.ru/xwiki/bin/edit/Main/WebHomeHTTP/1.1>
----------------------------------------
HTTP/1.1 401 Unauthorized
I would really appreciate any help! Also, it would be great if you show me
more examples of using PUT method for xWiki RESTful!
--
View this message in context:
http://xwiki.475771.n2.nabble.com/xWiki-RESTful-HTTP-Connection-tp7599026.h…
Sent from the XWiki- Users mailing list archive at
Nabble.com.
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users