2010-08-05 182 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();