Cómo construir una solicitud http post con la entidad correcto con Java y no utilizar la biblioteca?

Cómo debo construir la entidad para lograr esta solicitud post?

POST https://picasaweb.google.com/data/feed/api/user/userID/albumid/albumID/photoid/photoID

<entry xmlns='http://www.w3.org/2005/Atom'>
  <content>great photo!</content>
  <category scheme="http://schemas.google.com/g/2005#kind"
    term="http://schemas.google.com/photos/2007#comment"/>
</entry>

Es de:
http://code.google.com/intl/zh-TW/apis/picasaweb/docs/2.0/developers_guide_protocol.html#AddComments

Podría alguien dar un ejemplo o algún consejo?
Muchas gracias.

ACTUALIZACIÓN:
He añadido mi código aquí:

        List<Header> headers = new ArrayList<Header>();
    headers.add(new BasicHeader("GData-Version", "2"));
    headers.add(new BasicHeader("Authorization", "GoogleLogin auth=" + mAuthToken));

    EntityTemplate entity = new EntityTemplate(new ContentProducer() {
        public void writeTo(OutputStream ostream) throws IOException {
            Writer writer = new OutputStreamWriter(ostream, "UTF-8");

            writer.write("\r\n");
            writer.write("<entry xmlns='http://www.w3.org/2005/Atom'>");
            writer.write("<content>" + comment + "</content>");
            writer.write("<category scheme=\"http://schemas.google.com/g/2005#kind\"\r\n");
            writer.write("term=\"http://schemas.google.com/photos/2007#comment\"/>");
            writer.write("</entry>\r\n");

            writer.flush();
        }
    });

Aún sin suerte. Alguna idea?

OriginalEl autor shiami | 2011-02-24

3 Kommentare

  1. 12

    Es un código de ejemplo de uso de HttpClient.

    Espero que esta información le sea de ayuda para usted.

    //yourID
    String userID = "";
    String albumID = "";
    String photoID = "";
    
    HttpPost postRequest = new HttpPost(
        "https://picasaweb.google.com/data/feed/api/user/" + userID
        + "/albumid/" + albumID + "/photoid/" + photoID);
    
    postRequest.addHeader(new BasicHeader("GData-Version", "2.0"));
    postRequest.addHeader(new BasicHeader("Authorization",
        "GoogleLogin auth=" + mAuthToken));
    
    String content = 
        "<entry xmlns='http://www.w3.org/2005/Atom'>"
        + "<content>" + comment + "</content>"
        + "<category scheme='http://schemas.google.com/g/2005#kind'"
        + " term='http://schemas.google.com/photos/2007#comment'/>"
        + "</entry>";
    
    try {
        StringEntity entity = new StringEntity(content);
        entity.setContentType(new BasicHeader("Content-Type",
            "application/atom+xml"));
        postRequest.setEntity(entity);
    
        HttpClient httpclient = new DefaultHttpClient();
        HttpResponse response = httpclient.execute(postRequest);
    
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Gracias! Creo que no me he fijado el tipo de contenido correctamente. Esto es realmente útil, ya que el documento no señala esta parte importante.

    OriginalEl autor Yu Sun corn

  2. 2

    Puede utilizar «GDataAPI» y «la Guayaba-bibliotecas».

    PicasawebService myService
        = new PicasawebService("exampleCo-exampleApp-1"); //just id
    myService.setUserCredentials(
        "[email protected]", "mypassword"); //your mailaddress, password
    
    //change "username", "albumid" and "photoid"
    URL feedUrl = new URL(
        "https://picasaweb.google.com/data/feed/api/"
        + "user/username/albumid/albumid/photoid/photoid"); 
    
    CommentEntry myComment = new CommentEntry(); 
    myComment.setContent(
        new PlainTextConstruct("great photo!")); //there is comment
    myService.insert(feedUrl, myComment);

    Haga referencia a la dirección URL siguiente.

    1. http://code.google.com/intl/ja/apis/picasaweb/docs/2.0/developers_guide_java.html
    2. http://code.google.com/p/gdata-java-client/downloads (GDataAPI Descargar)
    3. http://code.google.com/p/guava-libraries/ (Guayaba-bibliotecas)
    Gracias por tu solución. Pero prefiero no agregar a la biblioteca cuyo tamaño es demasiado grande. Necesito saber que paso o que algo está mal.
    Veo y describió la otra manera. Por favor, compruebe.

    OriginalEl autor Yu Sun corn

  3. 0

    Puede utilizar HttpClient de apache httpcomponents para crear peticiones http.

    Encontrar los tutoriales aquí.

    Hola, he intentado como los tutoriales. No sé cómo funciona. ¿Podría dar un ejemplo de trabajo? Gracias!

    OriginalEl autor Suraj Chandran

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea