我一直在尝试解决这个问题一段时间,但我似乎无法让它正常工作。我有这个接受 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”始终为空。我还尝试使用 Chrome 的“Advanced Rest Client”来模拟 POST 请求,但我总是得到相同的结果。
我还注意到,如果我将 Content-Type 指定为“application/json; charset=utf-8”以外的任何内容,我会收到 403 错误。
有什么线索吗?
谢谢。