0
我正在嘗試使用Apache從我的類中進行REST調用。但是,當我打印REST服務的響應時,它給出了400例外。請找到下面的代碼,讓我知道需要作出使它工作的變化,400 - Apache POST發送JSON的錯誤請求
List<NameValuePair> pickup = new ArrayList<NameValuePair>();
ArrayList<HashMap> pickupItemList = new ArrayList<HashMap>();
String [] productIds = prop.getArray("vproductIDs");
String [] quantities = prop.getArray("vquantities");
String [] tprices = prop.getArray("vtprices");
String [] bprices = prop.getArray("vbprices");
HashMap pickupObjMap = new HashMap<String, Object>();
pickupObjMap.put("loyaltyId",prop.getString("loyaltyId"));
pickupObjMap.put("loyaltyFName",prop.getString("loyaltyFName"));
pickupObjMap.put("orderId",prop.getString("orderId"));
pickupObjMap.put("locationId",prop.getString("locationId"));
pickupObjMap.put("consignmentId",prop.getString("consignmentId"));
pickupObjMap.put("description",prop.getString("description"));
pickupObjMap.put("retailerId",prop.getString("retailerId"));
pickupObjMap.put("pickupType",Integer.parseInt(prop.getString("pickupType")));
pickupObjMap.put("email",prop.getString("email"));
pickupObjMap.put("loyaltyLName",prop.getString("loyaltyLName"));
pickupObjMap.put("status",prop.getString("status"));
for(int i=0; i<productIds.length ; i++){
HashMap map = new HashMap<String, Object>();
map.put("sku", productIds[i]);
map.put("quantity", Double.parseDouble(quantities[i]));
map.put("totalPrice", Double.parseDouble(tprices[i]));
map.put("basePrice", Double.parseDouble(bprices[i]));
pickupItemList.add(map);
}
pickup.add(new BasicNameValuePair("pickupItemList", pickupItemList.toString()));
pickup.add(new BasicNameValuePair("pickupObj", pickupObjMap.toString()));
pickup.add(new BasicNameValuePair("ovclid", prop.getString("ovclid")));
HttpPost httppost = new HttpPost("Target URL");
try {
httppost.setEntity(new UrlEncodedFormEntity(pickup));
httppost.setHeader("Content-Type", "application/json");
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(entity.getContent()));
if (bufferedReader != null) {
int cp;
StringBuilder sb = new StringBuilder();
while ((cp = bufferedReader.read()) != -1) {
sb.append((char) cp);
}
System.out.println("String Response......."+sb);
bufferedReader.close();
}
System.out.println("Response......."+entity.getContent());
} catch (Exception e) {
e.printStackTrace();
}
下面是我得到在製作REST調用的響應。
Unexpected character ('p' (code 112)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: [email protected]; line: 1, column: 2]
跌跌撞撞沒有在服務器中發現的異常被JSON
。此外,我試圖使用郵遞員工作找到電話,我也從服務器獲得有效的迴應。 –
你可以分享你的捲曲命令或任何你調用它的方式嗎?建議先嚐試卷曲。 –
嗨Sheetal, 我剛剛使用郵差測試它。請找到下面的詳細信息, 網址:http://ibmwcs.ovcdemo.com:8080/json/process/execute/CreatePickup 標題: 內容類型的應用程序/ JSON 體: { 「參數1」 :「[email protected]」 } –