You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@abdera.apache.org by Jalal U Mahmud <ju...@us.ibm.com> on 2008/12/02 22:17:06 UTC
About posting Atom using Apache Abdera
Hello
I am trying to post atom entry using apache abdera (still learning it).
I am having some problems while posting (but I can read from it).
. Here is the code fragment I am using:
abdera = new Abdera();
AbderaClient abderaClient = new AbderaClient(abdera);
Factory factory = abdera.getFactory();
Entry entry = factory.newEntry();
entry.setId(FOMHelper.generateUuid());
entry.setUpdated(new java.util.Date());
entry.addAuthor("Jalal");
entry.setTitle("Posting to Blogger");
entry.setContentAsXhtml("<p>This is an example post to the new blogger
beta</p>");
// using real username and password.
String auth = BasicScheme.authenticate(new UsernamePasswordCredentials(
"username", "password"));
RequestOptions rOptions = new RequestOptions();
rOptions.setAuthorization(auth);
ClientResponse resp = abderaClient.post(
"http://buetcse96.blogspot.com/feeds/posts/default", entry, rOptions);
if (resp.getType() == ResponseType.SUCCESS) {
// success
System.out.println("it is a success");
System.out.println("hello world" + resp.getStatusText()
+ "and" + resp.getLastModified());
//ResponseType.
} else {
// there was an error
System.out.println("it is an error" + resp.getType() +
"and: " + resp.getStatusText() +
" and:" + resp.getUri() + "
and:" + resp.getServerDate());
}
Output:
Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodBase
writeRequest
INFO: 100 (continue) read timeout. Resume sending the request
Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodDirector
isAuthenticationNeeded
INFO: Authentication requested but doAuthentication is disabled
it is an error CLIENT_ERROR and: Unknown authorization header
However, reading from that feed works...
Any idea why I am getting this error ?
-jalal.
Re: About posting Atom using Apache Abdera
Posted by Charles Greer <ch...@oreilly.com>.
I ran into this one long ago -- scripted clients don't take advantage of
the typical challenge/response in basic auth.
All you need to do it authenticate preemptively by doing:
abderaClient.userPreemptiveAuthentication(true);
Charles
David Calavera wrote:
> I suppose you have a problem with the authentication header XD. You can try
> to solve it using our GoogleLogin authentication extension, there is an
> example here:
> http://svn.apache.org/repos/asf/incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/appclient/Services.java
>
> On Tue, Dec 2, 2008 at 10:17 PM, Jalal U Mahmud <ju...@us.ibm.com> wrote:
>
>>
>> Hello
>>
>> I am trying to post atom entry using apache abdera (still learning it).
>> I am having some problems while posting (but I can read from it).
>>
>> . Here is the code fragment I am using:
>>
>> abdera = new Abdera();
>> AbderaClient abderaClient = new AbderaClient(abdera);
>>
>> Factory factory = abdera.getFactory();
>> Entry entry = factory.newEntry();
>>
>> entry.setId(FOMHelper.generateUuid());
>> entry.setUpdated(new java.util.Date());
>>
>> entry.addAuthor("Jalal");
>> entry.setTitle("Posting to Blogger");
>> entry.setContentAsXhtml("<p>This is an example post to the new blogger
>> beta</p>");
>>
>> // using real username and password.
>> String auth = BasicScheme.authenticate(new UsernamePasswordCredentials(
>> "username", "password"));
>>
>> RequestOptions rOptions = new RequestOptions();
>> rOptions.setAuthorization(auth);
>>
>> ClientResponse resp = abderaClient.post(
>> "http://buetcse96.blogspot.com/feeds/posts/default", entry, rOptions);
>>
>>
>> if (resp.getType() == ResponseType.SUCCESS) {
>> // success
>> System.out.println("it is a success");
>> System.out.println("hello world" + resp.getStatusText()
>> + "and" + resp.getLastModified());
>> //ResponseType.
>>
>> } else {
>> // there was an error
>> System.out.println("it is an error" + resp.getType() +
>> "and: " + resp.getStatusText() +
>> " and:" + resp.getUri() + "
>> and:" + resp.getServerDate());
>> }
>>
>>
>>
>> Output:
>>
>> Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodBase
>> writeRequest
>> INFO: 100 (continue) read timeout. Resume sending the request
>> Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodDirector
>> isAuthenticationNeeded
>> INFO: Authentication requested but doAuthentication is disabled
>> it is an error CLIENT_ERROR and: Unknown authorization header
>>
>>
>>
>> However, reading from that feed works...
>>
>> Any idea why I am getting this error ?
>>
>>
>> -jalal.
>
>
>
>
Re: About posting Atom using Apache Abdera
Posted by David Calavera <da...@gmail.com>.
I suppose you have a problem with the authentication header XD. You can try
to solve it using our GoogleLogin authentication extension, there is an
example here:
http://svn.apache.org/repos/asf/incubator/abdera/java/trunk/examples/src/main/java/org/apache/abdera/examples/appclient/Services.java
On Tue, Dec 2, 2008 at 10:17 PM, Jalal U Mahmud <ju...@us.ibm.com> wrote:
>
>
> Hello
>
> I am trying to post atom entry using apache abdera (still learning it).
> I am having some problems while posting (but I can read from it).
>
> . Here is the code fragment I am using:
>
> abdera = new Abdera();
> AbderaClient abderaClient = new AbderaClient(abdera);
>
> Factory factory = abdera.getFactory();
> Entry entry = factory.newEntry();
>
> entry.setId(FOMHelper.generateUuid());
> entry.setUpdated(new java.util.Date());
>
> entry.addAuthor("Jalal");
> entry.setTitle("Posting to Blogger");
> entry.setContentAsXhtml("<p>This is an example post to the new blogger
> beta</p>");
>
> // using real username and password.
> String auth = BasicScheme.authenticate(new UsernamePasswordCredentials(
> "username", "password"));
>
> RequestOptions rOptions = new RequestOptions();
> rOptions.setAuthorization(auth);
>
> ClientResponse resp = abderaClient.post(
> "http://buetcse96.blogspot.com/feeds/posts/default", entry, rOptions);
>
>
> if (resp.getType() == ResponseType.SUCCESS) {
> // success
> System.out.println("it is a success");
> System.out.println("hello world" + resp.getStatusText()
> + "and" + resp.getLastModified());
> //ResponseType.
>
> } else {
> // there was an error
> System.out.println("it is an error" + resp.getType() +
> "and: " + resp.getStatusText() +
> " and:" + resp.getUri() + "
> and:" + resp.getServerDate());
> }
>
>
>
> Output:
>
> Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodBase
> writeRequest
> INFO: 100 (continue) read timeout. Resume sending the request
> Dec 2, 2008 1:06:15 PM org.apache.commons.httpclient.HttpMethodDirector
> isAuthenticationNeeded
> INFO: Authentication requested but doAuthentication is disabled
> it is an error CLIENT_ERROR and: Unknown authorization header
>
>
>
> However, reading from that feed works...
>
> Any idea why I am getting this error ?
>
>
> -jalal.
--
David Calavera
http://www.thinkincode.net