2010-08-05 106 views
2

我正在寻找一个HTTP发布请求,因为我有原始数据。我花了一段时间寻找解决方案,做了一些尝试,我正在寻找一些帮助。对于我在寻找什么做的PHP代码如下所示:Java HTTP Post原始数据

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

回答

4

岂不的java.net.URLConnection类更好地工作?

+0

这工作就像一个魅力。正是我在找什么。非常感谢! – 2010-08-05 15:09:58

+0

我很高兴它有帮助。那么为什么不把它投票呢? – duffymo 2010-08-05 15:37:56

+0

我尝试过,但我没有声望。抱歉。 – 2010-08-05 15:56:49

1

它不看起来像你在呼唤:

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