簡體   English   中英

Java HTTP發布原始數據

[英]Java HTTP Post Raw Data

考慮到我擁有的原始數據,我希望發出一個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

java.net.URLConnection類不能更好地工作嗎?

它看起來不像您在打電話:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM