繁体   English   中英

Android如何将JSON对象作为url参数传递

[英]Android How to Pass a JSON Object as a url parameter

我有一个要求,我必须在url中将json对象作为参数传递。 这是我的网址

http://test.amazonaws.com/xyx/company/12/user/1/contact/{contactActivityJSON}/key/abccedrf/contacts?op=readsave

现在,contactActivityJSON具有以下结构

{
    "user": {},
    "event": {
        "id": 1,
    },
    "contacts": [
        {
            "id": "-1",
            "eventId": 1,
            "fields": [
                {
                    "fieldName": "test",
                    "value": "CallMe"
                }
            ]
        }
    ]
}

现在我在将JSON对象编码到URL中时遇到问题。 我在用

ObjectMapper mapper = new ObjectMapper();
Writer strWriter = new StringWriter();
mapper.writeValue(strWriter, request.getRequestBody());
String jsonString = strWriter.toString();
String sss = URLEncoder.encode(jsonString);

并将其替换为URL。 但是它不起作用。 谁能帮忙吗?

我想您是在JsonObject上发布到服务器的。 使用下面的代码对我来说很好

    /**
 * Uplaod with Json Object
 * 
 * @param _requestedURL
 * @param obj
 * @return
 * @throws IOException
 */
public String UploadUrl(String _requestedURL, JSONObject obj)
        throws IOException {
    HttpPost _request = new HttpPost(_requestedURL);
    HttpResponse _response = null;
    DefaultHttpClient _httpClient = new DefaultHttpClient();
    String _ContetnString = null;
    try {
        StringEntity se = new StringEntity(obj.toString());
        _request.setEntity(se);
        _request.setHeader("Accept", "application/octet-stream");
        _request.setHeader("Content-type", "application/octet-stream");
        HttpParams httpParameters = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParameters,
                CommonValues.TIME_OUT);
        HttpConnectionParams.setSoTimeout(httpParameters,
                CommonValues.TIME_OUT);
        _request.setParams(httpParameters);
        _response = _httpClient.execute(_request);
        if (_response != null
                && _response.getStatusLine().getStatusCode() == 200) {
            //Read Responce
        }
    } catch (SocketException e) {
    } catch (ConnectTimeoutException e) {
    } catch (Exception e) {
    }

    return _ContetnString;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM