我一直在試圖解決這個問題一段時間,現在我似乎無法使其正常工作。我有一個不接受JSON內容這個POST服務:發佈JSON與播放1.2.4
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
}
當我測試方法與functionnal測試,一切正常:
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的「高級休息客戶端」來模擬POST請求,但我總是得到相同的結果。
我還注意到,如果我指定我的Content-Type是「application/json; charset = utf-8」之外的任何東西,則會出現403錯誤。
任何線索?
謝謝。
您可以添加調用服務的客戶端代碼 –