Java HTTP Post données brutes
-
25-09-2019 - |
Question
Je cherche à faire une demande de poste HTTP étant donné les données brutes que j'ai. J'ai passé un certain temps à la recherche de la solution, a fait une poignée de tentatives et je suis à la recherche d'un peu d'aide. Le code PHP pour ce que je suis à la recherche de faire ressemble à ceci:
<?
$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é la postMethod, mais cela est tout simplement un poste ne contenant aucune donnée. Quelqu'un voit-il quelque chose de mal que je fais? Je voudrais savoir comment changer cette méthode pour le faire fonctionner réellement. Merci!
-Ken
La solution
Ne serait pas le travail de classe java.net.URLConnection
mieux?
Autres conseils
Il ne ressemble pas à vous appelez:
int result = httpclient.executeMethod(postMethod);
postMethod.releaseConnection();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow