как отправить запрос HTTP Post, используя трикотаж со сложным параметром

Мне нужно отправить сообщение HTTP в REST API со следующим сложным типом в качестве параметров. Я просмотрел документацию по трикотажу, и это помогает только отправить пару ключ-значение. Как я могу отправить запрос HTTP Post с указанными ниже параметрами, используя jersey.

{
    "key": "example key",
    "message": {
        "html": "<p>Example HTML content</p>",
        "text": "Example text content",
        "subject": "example subject",
        "from_email": "[email protected]",
        "from_name": "Example Name",
        "to": [
            {
                "email": "[email protected]",
                "name": "Recipient Name"
            }
        ],
        "headers": {
            "Reply-To": "[email protected]"
        },
        "important": false,
        "track_opens": null,
        "track_clicks": null,
        "auto_text": null,
        "auto_html": null,
        "inline_css": null,
        "url_strip_qs": null,
        "preserve_recipients": null,
        "view_content_link": null,
        "bcc_address": "[email protected]",
        "tracking_domain": null,
        "signing_domain": null,
        "return_path_domain": null,
        "merge": true,
        "global_merge_vars": [
            {
                "name": "merge1",
                "content": "merge1 content"
            }
        ],
        "merge_vars": [
            {
                "rcpt": "[email protected]",
                "vars": [
                    {
                        "name": "merge2",
                        "content": "merge2 content"
                    }
                ]
            }
        ],
        "tags": [
            "password-resets"
        ],
        "subaccount": "customer-123",
        "google_analytics_domains": [
            "example.com"
        ],
        "google_analytics_campaign": "[email protected]",
        "metadata": {
            "website": "www.example.com"
        },
        "recipient_metadata": [
            {
                "rcpt": "[email protected]",
                "values": {
                    "user_id": 123456
                }
            }
        ],
        "attachments": [
            {
                "type": "text/plain",
                "name": "myfile.txt",
                "content": "ZXhhbXBsZSBmaWxl"
            }
        ],
        "images": [
            {
                "type": "image/png",
                "name": "IMAGECID",
                "content": "ZXhhbXBsZSBmaWxl"
            }
        ]
    },
    "async": false,
    "ip_pool": "Main Pool",
    "send_at": "example send_at"
}

Я рассмотрел другие вопросы об отправке HTTP-сообщения с использованием Джерси, и все, что я смог найти, это способ отправки только пар key\value в качестве параметров, а не сложных типов строк, как указано выше.


person Abishek    schedule 04.10.2013    source источник


Ответы (1)


Вы должны посмотреть на JAXB, он позволяет вам «автоматически» создавать «сложные параметры» из «объектов». По сути, процедура состоит в том, чтобы определить класс, который представляет структуру данных, которую вы представляете в качестве сообщения запроса, которое принимает ресурс REST API, а затем заполнить его данными, которые вы хотите отправить POST, и отправить его. В этом вопросе вы можете найти более подробную информацию о том, как именно это сделать: Могут ли трикотажные клиенты отправить объект JAXB на сервер с помощью JSON?

person emgsilva    schedule 04.10.2013