2011-01-12 1 views
2

、私は、httpポストを作成し、私は簡単にクラスにデシリアライズされたバイト配列(BRET)の形で対応してXMLを取得する:JavaのHTTP POSTリクエストからXML結果を逆シリアル化する方法は? C#ので

MemoryStream m = new MemoryStream(bret); 
XmlSerializer s = new XmlSerializer(typeof(TransactionResults)); 
TransactionResults t = (TransactionResults)s.Deserialize(m); 

正確かつ簡単になりますどのようなJavaで同じことをする方法?

+0

タイトルをより正確に編集してください – juan

答えて

1

http://www.exampledepot.com/egs/java.net/post.html

かのHttpClientを使用するような何かを経由して、あなたのPOSTリクエストを行います。あなたはあなたのデータをシリアライズしている方法に応じて

http://hc.apache.org/httpclient-3.x/methods/post.html

は、対応するデ・シリアライザを使用する必要があります。 XStreamのは、このようなタスクのための良いシンプルな選択肢です:

http://x-stream.github.io/

このすべては、確かに多くのコードですが、これはJavaシステムVS .NETの典型的なトレードオフである(それはより多くのコードですが、Javaへの利点があります)。 X-Streamを使用して

0

- get要求のために:

XStream xstream = new XStream(new DomDriver()); 
xstream.alias("person", Person.class); 
URL url = new URL("www.foo.bar/person/name/foobar"); 
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
Person foobar = (Person) xstream.fromXML(in); 

あなたはpost用URLへの呼び出しを変更することができます。複数の実装でXMLにオブジェクトを変換するための

0

JAXB is the Java standardJSR-222):MetroEclipseLink MOXy(私はハイテクリードだ)、Apache JaxMe

ようなHTTPオペレーションコードを使用してJavaでアクセスすることができる:

JAXBとXStreamののcomparsionについて

:上記のコードサンプルからなる

String uri = 
    "http://localhost:8080/CustomerService/rest/customers/1"; 
URL url = new URL(uri); 
HttpURLConnection connection = 
    (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setRequestProperty("Accept", "application/xml"); 

JAXBContext jc = JAXBContext.newInstance(Customer.class); 
InputStream xml = connection.getInputStream(); 
Customer customer = 
    (Customer) jc.createUnmarshaller().unmarshal(xml); 

connection.disconnect(); 

参照:

0

あなたがクラスにあなたの結果をマッピングしたくない場合は、Restyをチェックアウトする場合があります。 JSON、XML、または他のデータ型に1ライナーでアクセスします。 Slashdot RSSをXMLとして解析し、リンクされたすべての記事を出力するコードです。

Resty r = new Resty(); 
NodeList nl = r.xml("http://rss.slashdot.org/Slashdot/slashdotGamesatom").get("feed/entry/link"); 
for (int i = 0, len = nl.getLength(); i < len; i++) { 
    System.out.println(((Element)nl.item(i)).getAttribute("href")); 
} 
関連する問題