我正在尝试用从Android调用restweb服务。为此,我创建了这样一个类:
public class HttpUtils {
public static final String BASE_URL1 = AppConstants.hostname;
private static AsyncHttpClient client = new AsyncHttpClient(true, 80, 443);
public HttpUtils() throws NoSuchAlgorithmException {
}
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
public static void getByUrl(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.get(url, params, responseHandler);
}
public static void postByUrl(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(url, params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return relativeUrl;
}
{
"wsMode":"nuovo",
"wsTokenLogin":"&1I1BY!M$$YEMFKI0YX&",
"crmcttCognome": "Xavi",
"crmcttNome": "Alonso",
"crmcttIndirizzo": "via Alcide de Gasperi",
"crmcttCivico": "1",
"crmcttLocalita": "Napoli",
"crmcttCdLocalita": "",
"crmcttProv": "NA",
"crmcttCap": "80100",
"crmcttTel1": "08123232332",
"crmcttTel2": "",
"crmcttMobile1": "",
"crmcttMobile2": "",
"crmcttEmail1": "",
"crmcttEmail2": "",
"crmcttNota": "ok",
"crmcttIdstcontatto": "N",
"crmcttIdpromoter": "61",
"crmcttDtRilevaz": "20180806",
"crmcttOraRilevaz": "1530",
"crmcttLuogoRilevaz": "",
"prodotti": [{
"crmcprIdprodotto": "01",
"crmprdCdprodotto": "MATE",
"crmprdDsprodotto": "MATERASSI"
}]}
我创建的请求具有以下结构:
RequestParams rp = new RequestParams();
rp.put("wsMode", "nuovo");
rp.put("wsTokenLogin", token);
rp.put("crmcttCognome", lead.getCognome());
rp.put("crmcttNome", lead.getNome());
rp.put("crmcttIndirizzo", lead.getIndirizzo());
rp.put("crmcttCivico", lead.getCivico());
rp.put("crmcttLocalita", lead.getLocalita());
rp.put("crmcttCdLocalita", lead.getCdLocalita());
rp.put("crmcttProv", lead.getProvincia());
rp.put("crmcttCap", lead.getCap());
rp.put("crmcttTel1", lead.getTelefono1());
rp.put("crmcttTel2", lead.getTelefono2());
rp.put("crmcttMobile1", lead.getMobile1());
rp.put("crmcttMobile2", lead.getMobile2());
rp.put("crmcttEmail1", lead.getEmail1());
rp.put("crmcttEmail2", lead.getEmail2());
rp.put("crmcttNota", lead.getNota());
rp.put("crmcttIdstcontatto", lead.getIdContatto());
rp.put("crmcttIdpromoter", lead.getIdPromoter());
rp.put("crmcttDtRilevaz", lead.getDataRilevazione());
rp.put("crmcttOraRilevaz", "");
rp.put("prodotti",prodottiCliente);
rp.setUseJsonStreamer(true);
其中prodottiCliente是我已转换为字符串的对象数组:
String jsonProdottiAddClient = gson.toJson(prodottiAddClient);
调用之后,除“prodotti”之外的所有元素都存储到db中。在debug中,我可以看到列表不是空的。
如果我试图执行邮递员的post call,所有信息都会被存储,包括prodotti信息。你能给我一些建议来解决这个问题吗?