使用参数发送JSON对象

时间:2013-02-19 09:16:42

标签: android json

在我的应用程序中,我尝试使用像UserId这样的参数发送JSONObject,任何人都可以向我推荐一些教程,我可以从中获取一些帮助......

我得到了这段代码但是在这段代码中我只能发送JSONObject而不是参数..

我的网址是这样的:http://www.example.com/JSONObject/userId

如何将带有userId的JSONObject传递给服务器..

public class HTTPPoster {
    public HttpResponse doPost(String url, JSONObject jsonProfilo) throws ClientProtocolException, IOException {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost request = new HttpPost(url);
        HttpEntity entity;
        StringEntity s = new StringEntity(jsonProfilo.toString());
        s.setContentEncoding((Header) new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
        entity = s;
        request.setEntity(entity);
        HttpResponse response;
        response = httpclient.execute(request);
        return response;
    }
}

谢谢..

2 个答案:

答案 0 :(得分:0)

你是什么意思“我只能发送JSONObject而不是参数。” ,你可以将所有参数放在JsonObject本身,我没有得到你真正的问题

答案 1 :(得分:0)

在JSONObject中,您可以保留以下参数:

JSONObject jsonvalue =new JSONObject();
jsonvalue.put("userId", "urUserId");

示例代码,这里我发送服务器imeiNumber,userName和paasword:

JSONObject jsonvalue =new JSONObject();
jsonvalue = new JSONObject();
jsonvalue.put("imeiNumber", "00000000000");
jsonvalue.put("userName", mUserName);
jsonvalue.put("plainPassword", mPassword);

我的观点同样可以将userId和globalId发送到服务器。

现在在你的HttpConnection:

HttpURLConnection conn = null;
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setChunkedStreamingMode(0);
conn.setUseCaches(false);
String urlParameters = "body"
    + URLEncoder.encode(jsonvalue.toString(), "UTF-8");       
conn.setRequestProperty("Content-Length",
    "" + Integer.toString(urlParameters.getBytes().length));

try {
     OutputStream os = conn.getOutputStream();
     os.write(jsonvalue.toString().getBytes());
     os.close();
} catch (IOException e) {
    e.printStackTrace();
}