1
他のアプリケーションと通信する必要のあるアプリケーションがあります。私はJSON
オブジェクトに設定されたパラメータaccountId
を取得しようとしています第二のアプリケーションでSpring、JSON別のアプリケーションを呼び出すと値が送信されない
public List<ContactsBO> getZingyContactsByCompanyId(int companyId) throws Exception {
String url="http://localhost:8080/ZingyApp/getContactsToBSAByAccountId";
URL object=new URL(url);
JSONObject account = new JSONObject();
String accountId = "58fd8c58abced355f69bf0bb";
account.put("accountId", accountId);
HttpURLConnection conn = (HttpURLConnection) object.openConnection();
conn.setConnectTimeout(50000);
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
OutputStream os = conn.getOutputStream();
OutputStreamWriter wr = new OutputStreamWriter(os);
wr.write(account.toString());
wr.flush();
os.close();
String json_response = "";
BufferedReader br = null;
if (conn.getResponseCode() == 200) {
br = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
} else {
br = new BufferedReader(new
InputStreamReader(conn.getErrorStream()));
}
String text = "";
while ((text = br.readLine()) != null) {
json_response += text;
}
String contacts = json_response;
System.out.println("Contacts:"+contacts);
return null;
}
:として私はそれを言及した最初のアプリケーションで
。
ここ@RequestMapping(value="/getContactsToBSAByAccountId",method=RequestMethod.POST)
public @ResponseBody List<Contacts> getContactsByAccountId(@ModelAttribute("accountId") String accountId) {
System.out.println("Inside Account Details:"+accountId);
List<Contacts> contacts=salesContactService.getContactsByAccountId("58fd8c58abced355f69bf0bb");
return contacts;
}
accountId
null
です。
@RequestParams
を変更したときに、メソッド自体が呼び出されず、@ModelAttribute
に変更すると400 error
になりましたが、値はポストされません。
誰かがこれについて提案できますか?
'ModelAttribute'の代わりに' @RequestBody Map objectMap'を試して、 'Stringのようなマップから取得してください。accountId =(String)objectMap.get(" accountId ")' –
nurgasemetey