2010-08-05 23 views
2

Je cherche à faire une demande de publication HTTP compte tenu des données brutes que j'ai. J'ai passé un moment à chercher la solution, j'ai fait quelques tentatives et je cherche un peu d'aide. Le code PHP pour ce que je suis à la recherche de faire ressemble à ceci:Java HTTP Post Données brutes

<? 
$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); 
?> 

Ma tentative était la suivante:

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; 
    } 

Et puis lancé le postMethod, mais cela est tout simplement un poste ne contenant aucune donnée. Est-ce que quelqu'un voit quelque chose de mal que je fais? J'aimerais savoir comment changer cette méthode pour qu'elle fonctionne réellement. Merci!

-Ken

Répondre

4

Ne serait pas le travail de classe java.net.URLConnection mieux?

+0

Cela a fonctionné comme un charme. Exactement ce que je cherchais. Merci beaucoup! –

+0

Je suis content que ça a aidé. Pourquoi ne pas voter aussi, alors? – duffymo

+0

J'ai essayé de, mais je n'ai pas la réputation de bien. Pardon. –

1

Il ne ressemble pas à vous appelez:

int result = httpclient.executeMethod(postMethod); 
    postMethod.releaseConnection();