私はしばらくの間、この問題を解決しようとしてきましたが、適切に機能させることができないようです。JSONコンテンツを受け入れるこのPOSTサービスがあります:
public static void addLifestyleToRecipes(String categoryMappingList) {
Logger.info("In RecipeServices--> addLifestyleToRecipes");
Logger.info("JSON received: %s", categoryMappingList);
Type type = new TypeToken<List<CategoryMapping>>() {
}.getType();
List<CategoryMapping> categoryMapping = new Gson().fromJson(categoryMappingList, type);
for (CategoryMapping cat : categoryMapping) {
//the rest is irrelevant to the problem
}
機能テストでメソッドをテストすると、すべて正常に動作します:
List<CategoryMapping> list = new ArrayList<CategoryMapping>();
list.add(new CategoryMapping(MULTI_LANG_ID, recipes));
list.add(new CategoryMapping(MULTI_LANG_ID, recipes));
String body = new Gson().toJson(list);
Map<String, String> params = new HashMap<String, String>();
params.put("categoryMappingList", body);
StringBuffer url = TestHelper.generateBaseUrl(apiKey, apiVersion);
url.append("/recipes/add/categories");
Response response = POST(url, params);
実際にサービスを呼び出そうとすると問題が発生します。パラメータ「categoryMappingList」は常にnullです。また、Chrome の「Advanced Rest Client」を使用して POST リクエストをシミュレートしようとしましたが、常に同じ結果が得られます。
また、Content-Type を "application/json; charset=utf-8" 以外に指定すると、403 エラーが発生することにも気付きました。
手がかりはありますか?
ありがとう。