Pregunta

Estoy buscando para hacer una petición HTTP POST dado los datos en bruto que tengo. He pasado un tiempo en busca de la solución, hecho un puñado de intentos y yo estoy buscando un poco de ayuda. El código PHP para lo que estoy buscando que hacer es similar al siguiente:

<?
$url="http://localhost:3000";
$postdata="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<hi></hi>";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$result = curl_exec($ch);
curl_close($ch);

echo($result);
?>

Mi intento fue la siguiente:

  private String setXmlPostHeader(Document doc, PostMethod postMethod) throws java.io.IOException, java.io.UnsupportedEncodingException,    
    javax.xml.transform.TransformerException
  {
     ByteArrayOutputStream xmlBytes = new ByteArrayOutputStream();
     XML.serialize( doc, xmlBytes );
     final byte[] ba = xmlBytes.toByteArray();
     String data = new String(ba, "utf-8");
     InputStreamRequestEntity re = new InputStreamRequestEntity(new ByteArrayInputStream(ba));
     postMethod.setRequestEntity(re);
     postMethod.setRequestHeader("Content-type", MediaType.XML.toString() + "; charset=UTF-8");
     return data;
  }

Y a continuación, ejecutando el postMethod, pero esto simplemente es un puesto que no contiene datos. ¿Alguien ve algo malo que estoy haciendo? Me gustaría encontrar la manera de cambiar este método para hacer lo que realmente funciona. Gracias!

Ken

¿Fue útil?

Solución

¿No la java.net.URLConnection trabajo de la clase mejor?

Otros consejos

Es imposible parece que está llamando:

    int result = httpclient.executeMethod(postMethod);  
    postMethod.releaseConnection();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top