Chiradip Narayan Mandal wrote:
Hello James and David,

Thanks for your replies. But James! I think PUT & DELETE is not going to
work with blogger using Abdera, even after overriding.


I've tested it before with the current version of blogger and it's worked.

I have another problem - it is regarding POST with roller. I use the latest
version of roller and the code snippet below. Problem is with the line
containign 'Service service = service_doc.getRoot();'. I am getting a
ClassCastException saying FOMFeed can not be casted to Service. Any help?


You must be trying to GET the collection feed and not the service document or, roller is serving the feed incorrectly when a service document is requested.

- James

Chiradip

Document<Service> service_doc = client.get(start).getDocument();

Service service = service_doc.getRoot();

Collection collection = service.getWorkspaces
().get(0).getCollections().get(0);

String uri = collection.getHref().toString();


On Wed, Feb 20, 2008 at 11:17 PM, James M Snell <[EMAIL PROTECTED]> wrote:

They may be blocking PUT and DELETE. Try using POST but add the
X-HTTP-Method-Override header to the request.

e.g.

  POST /foo HTTP/1.1
  X-HTTP-Method-Override: PUT

More info:
  http://code.google.com/apis/gdata/basics.html#Updating-an-entry

In the Abdera client, the post override can be set using the
RequestOptions

  Abdera abdera = new Abdera();
  AbderaClient client = new AbderaClient(abdera);
  RequestOptions options = client.getDefaultRequestOptions();
  options.setUsePostOverride(true);
  ClientResponse resp = client.put("...", ..., options);


- James

Chiradip Narayan Mandal wrote:
* Hello,
 >
Can anybody please help me about the below code? It is mainly taken from
the
example written by James. With the same condition POST is going
perfectly
well. But I am not able to perform PUT and DELETE operations. I
understand
the success status codes for PUT and DELETE are different from POST. I
am
getting 400 as the status code and 'Bad request' as the satus code text.
I
want to know how PUT and DELETE can be performed.

Chiradip

public* *static* *void* putToBlogger() *throws* Exception {

Abdera abdera = *new* Abdera();

URL url = *new* URL("http://atomsandbox.blogspot.com/feeds/posts/default";
);
Parser parser = Abdera.*getNewParser*();

Document<Feed> doc = parser.parse( url.openStream() );

Feed feed = doc.getRoot();

Entry entry = feed.getEntry( "tag:blogger.com,1999:
blog-8038874006622135494.post-6147415018903117917" );

*out*.println( "entry.getTitle() : " + entry.getTitle() );

entry.setUpdated( *new* java.util.Date() );

AbderaClient client = *new* AbderaClient( abdera );

String auth = GoogleLogin.*getAuth*( client, "blogger",
"your_real_user_name", "your_password" );

RequestOptions options = client.getDefaultRequestOptions();

options.setAuthorization( "GoogleLogin " + auth );

BaseRequestEntity bre = *new* BaseRequestEntity( entry, *false* );

Response response = client.put( "
http://atomsandbox.blogspot.com/feeds/posts/default";, bre, options );

*out*.println("response.getStatusText() : " + response.getStatus() + " "
+
response.getStatusText() );

*if* ( response.getStatus() == 201 )

*out*.println( "Success!" );

*else
*

*out*.println( "Failed!" );

}


Reply via email to