1

そのため、次の質問に答えるために、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 が正しいことなどはわかっています。これは、ペイロードで行っていることとまったく関係があります。どんな考えでも大歓迎です!!

一番!

4

1 に答える 1