代码之家  ›  专栏  ›  技术社区  ›  Pierpaolo Di Dato

使用组合对象的Android http post

  •  0
  • Pierpaolo Di Dato  · 技术社区  · 6 年前

    我正在尝试用从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信息。你能给我一些建议来解决这个问题吗?

    0 回复  |  直到 6 年前