そのため、次の質問に答えるために、stackoverflow と google の両方で一般的に多くのことを調べてきましたが、この作業を 100% 達成するのに役立つものを見つけることができませんでした。小さなエラーを除いてすべて正しいと確信していますが、明らかに、とにかく提案があるので、それを試してください!
HTTPClient を使用して、いくつかの異なる環境で API をテストしてきました。JSON ペイロードを受け入れる HTTPPost メソッドを取得しましたが、XML を使用してペイロードを送信しようとしていますが、いくつかの問題が発生しています。 . 私が作成している XML 文字列 (以下のコードで) は正しいようです...なぜこれが機能しないのか、私は困惑しています。また、(XMLペイロードを構築するために)インターネットからDOMコードのほとんどを入手したので、それについても質問してください...
私のコードは次のとおりです。
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element subscription = doc.createElement("subscription");
doc.appendChild(subscription);
subscription.setAttribute("email", "patricia@test.intershop.de");
etc....
etc....
etc....
etc....
DOMSource domSource = new DomSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.transform(domSource, result);
String XMLpayload = writer.toString();
[name of my HttpRequest].setEntity(new StringEntity(XMLpayload));
[name of my HttpResponse] = client.execute(request);
今...私は以下に見られるペイロードを達成しようとしています:
<subscription>
<email>patricia@test.intershop.de</email>
<firstName>Patricia</firstName>
<lastName>Miller</lastName>
<title>Ms.</title>
<gender>Female</gender>
</subscription>
現在送信しているペイロードを印刷すると、次のようになります。
?xml バージョン="1.0" エンコーディング="UTF-8" スタンドアロン="いいえ"? subscription email="patricia@test.intershop.de" firstName="パトリシア" 性別="女性" lastName="ミラー" title="Ms."/
(注: < および > ブラケットを削除しました。本来あるべき場所に表示されます!)
しかし、400 エラーが発生します。ここに何かアイデアはありますか?適切なヘッダーがあること、URL が正しいことなどはわかっています。これは、ペイロードで行っていることとまったく関係があります。どんな考えでも大歓迎です!!
一番!