我正在尝试处理XML数据错误为的请求
RecurlyController.processEvents(java.lang.Object,javax.servlet.http.HttpServletRequest)]:
org.springframework.web.HttpMediaTypeNotSupportedException:
控制器
我想要任何结构的XML数据,这就是我在请求中使用Object的原因
@RequestMapping(value = "events", method = RequestMethod.POST, consumes = MediaType.APPLICATION_XML_VALUE)
public ModelAndView processEvents(@RequestBody Object recurlyEvent, HttpServletRequest request {
Response response = recurlyManager.processEvents(recurlyEvent);
return prepareModelAndView(response);
}
使用邮递员向spring应用程序发出Http请求
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/xml");
RequestBody body = RequestBody.create(mediaType, "<?xml version="1.0" encoding="UTF-8"?>n<new_subscription_notification>n <account>n <account_code>1</account_code>n <username nil="true">verena</username>n <email>verena@example.com</email>n <first_name>Verena</first_name>n <last_name>Example</last_name>n <company_name nil="true">Company, Inc.</company_name>n </account>n <subscription>n <plan>n <plan_code>bronze</plan_code>n <name>Bronze Plan</name>n </plan>n <uuid>8047cb4fd5f874b14d713d785436ebd3</uuid>n <state>active</state>n <quantity type="integer">2</quantity>n <total_amount_in_cents type="integer">17000</total_amount_in_cents>n <subscription_add_ons type="array">n <subscription_add_on>n <add_on_code>premium_support</add_on_code>n <name>Premium Support</name>n <quantity type="integer">1</quantity>n <unit_amount_in_cents type="integer">15000</unit_amount_in_cents>n <external_sku>pre-123</external_sku>n <add_on_type>fixed</add_on_type>n <usage_percentage nil="true"></usage_percentage>n <measured_unit_id nil="true"></measured_unit_id>n </subscription_add_on>n <subscription_add_on>n <add_on_code>email_blasts</add_on_code>n <name>Email Blasts</name>n <quantity type="integer">1</quantity>n <external_sku>email-123</external_sku>n <unit_amount_in_cents type="integer">50</unit_amount_in_cents>n <add_on_type>usage</add_on_type>n <usage_percentage nil="true"></usage_percentage>n <measured_unit_id type="integer">394681687402874853</measured_unit_id>n </subscription_add_on>n <subscription_add_on>n <add_on_code>donations</add_on_code>n <name>Donations</name>n <quantity type="integer">1</quantity>n <unit_amount_in_cents nil="true"></unit_amount_in_cents>n <add_on_type>usage</add_on_type>n <usage_percentage>0.6</usage_percentage>n <measured_unit_id type="integer">394681920153192422</measured_unit_id>n </subscription_add_on>n </subscription_add_ons>n <activated_at type="datetime">2009-11-22T13:10:38Z</activated_at>n <canceled_at type="datetime"></canceled_at>n <expires_at type="datetime"></expires_at>n <current_period_started_at type="datetime">2009-11-22T13:10:38Z</current_period_started_at>n <current_period_ends_at type="datetime">2009-11-29T13:10:38Z</current_period_ends_at>n <trial_started_at type="datetime">2009-11-22T13:10:38Z</trial_started_at>n <trial_ends_at type="datetime">2009-11-29T13:10:38Z</trial_ends_at>n <collection_method>automatic</collection_method>n </subscription>n</new_subscription_notification>");
Request request = new Request.Builder()
.url("http://a346f04e.ngrok.io")
.method("POST", body)
.addHeader("Content-Type", "application/xml")
.build();
Response response = client.newCall(request).execute();
为寻找类似问题答案的人。去除消耗对我有效。
@RequestMapping(value = "events", method = RequestMethod.POST)
public ModelAndView processEvents(@RequestBody String recurlyEvent, HttpServletRequest request {
Response response = recurlyManager.processEvents(recurlyEvent);
return prepareModelAndView(response);
}