1
アンドロイドからDBに新しいレコードを挿入する方法を書いています。クライアント(アンドロイドスタジオ)で は、私がAsyncHttpClient POSTを使用します。AsyncHttpClient POSTパラメータがサーバ上でnullになる
JSONObject params = new JSONObject();
try {
params.put("idOrd", idOrd);
params.put("idLan", aIdLan);
params.put("dbIP", dbIP);
params.put("dbName", dbName);
params.put("dbUsername", dbUsername);
params.put("dbPassword", Utility.dbEncrypt(dbPassword));
wsEditMaster(params);
} catch (JSONException | UnsupportedEncodingException e) {
e.printStackTrace();
}
public void wsEditMaster(final JSONObject params) throws UnsupportedEncodingException {
ByteArrayEntity entity = new ByteArrayEntity(params.toString().getBytes("UTF-8"));
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));
client.post(this, "http://" + serverIP + "/DHD/general/editorder", entity, "application/x-www-form-urlencoded", new AsyncHttpResponseHandler() {
、サーバー上(日食):私はGETを使用する場合
// HTTP Post Method
@POST
// Path: http://localhost/<appln-folder-name>/general/editorder
@Path("/editorder")
// Produces JSON as response
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
// Query parameters are parameters:
public String editOrder(@FormParam("idOrd") String idOrd,
@FormParam("idLan") String idLan, @FormParam("dbIP") String dbIP,
@FormParam("dbName") String dbName,
@FormParam("dbUsername") String dbUsername,
@FormParam("dbPassword") String dbPassword) throws Exception {
String response = "";
if (DBConnection.editOrder(idOrd, idLan, dbIP, dbName, dbUsername, dbPassword)) {
response = Utility.constructJSON("editOrder", true);
} else {
response = Utility.constructJSON("editOrder", false,
"Cannot insert to database!");
}
return response;
}
をすべてが正常に動作しますが、私はPOSTを使用する場合、すべてのparamsは「editOrder」関数ではnullになりました。 お手数ですが、ありがとうございます。
Chromeで高度なRESTクライアントでテストするとうまくいきました。ですから、アンドロイドの "client.post ...."には何か間違っていると思いますが、それが何であるか正確にはわかりません。 – Jacky