Java HTTP Post Raw Data - PullRequest
       2

Java HTTP Post Raw Data

2 голосов
/ 05 августа 2010

Я ищу отправку HTTP-запроса с учетом необработанных данных, которые у меня есть.Я потратил некоторое время на поиски решения, сделал несколько попыток, и я ищу немного помощи.Код PHP для того, что я собираюсь сделать, выглядит следующим образом:

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

Моя попытка была такой:

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

И затем выполнение postMethod, но это просто сообщениене содержит данных.Кто-нибудь видит что-то не так, что я делаю?Я хотел бы выяснить, как изменить этот метод, чтобы он действительно работал.Спасибо!

-Ken

Ответы [ 2 ]

4 голосов
/ 05 августа 2010

Не будет ли класс java.net.URLConnection работать лучше?

1 голос
/ 05 августа 2010

Не похоже, что вы звоните:

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