【问题标题】:Passing Array of objects as url parameters in request在请求中将对象数组作为 url 参数传递
【发布时间】:2012-10-26 20:01:58
【问题描述】:

我需要在 http 请求的 url 中放置一个对象数组(每个对象有 2 个字段)作为参数。我该怎么做?这个链接应该是什么样子?

【问题讨论】:

    标签: android http httprequest


    【解决方案1】:

    您可以使用您的结构创建一个 xml,即一个对象数组,每个对象有两个字段,然后将其转换为字符串, 例如,

           String  input = String.format("<Request><Data><Id>%s</Id></Data> 
           </Request>",studentIdSelected);
    

    然后以输入和url作为参数调用这个方法来发布你的数据,

           public static String retriver(String Url, String input) {
    
        String responseString = null;
        StringEntity stringEntity;
        HttpPost postRequest = new HttpPost(Url);
        try {
    
            Log.e("string is", input + "\n" + Url);
            stringEntity = new StringEntity(input, "UTF-8");
            stringEntity.setContentType("application/atom+xml");
    
            postRequest.setEntity(stringEntity);
            Log.v("Post", "Posted");
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(postRequest);  
            HttpEntity getResponseEntity = response.getEntity();
    
            responseString = EntityUtils.toString(getResponseEntity);
    
        } catch (Exception e) {
            // TODO: handle exception
            postRequest.abort();
            Log.w("HttpPostRetreiver", "Error for URL " + Url, e);
        }
    
        return responseString;
    
    }
    

    您也可以使用 json。

    【讨论】:

    • 感谢这个解决方案,但我将使用 JSONObject 和 JSONArray 因为服务器 requaied json 格式。所以我之前没说过这个:/
    【解决方案2】:

    最好的解决方案是以 json 或 xml 格式发送 http post 请求。

    【讨论】:

    • 我相信你是对的,但我需要将 args 放入 url。无论如何,现在我正在尝试使用 JSONObject 和 JSONArray 类来做我需要的事情。如果有人愿意尝试,我认为这可能是一个很好的解决方案。
    • 好吧,我试过了。这是一个很好的解决方案,但需要编码特殊字符,如“[”或“,”。我只是在 Base64 中对整个内容进行编码,然后将非常长的参数放入 url。有用 ; P
    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 2017-03-04
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2021-04-06
    • 2022-12-19
    • 2010-12-18
    相关资源
    最近更新 更多