2

可能重复:
如何通过 Android 请求发送 JSON 对象?

由于我是 Android 开发的新手,我遇到了一个以 JSON 形式向 Web 服务发送请求的问题。谷歌搜索,我发现以下代码用于使用参数发送请求。这是我们发送参数形式的 Java 类:

主.java

RestClient client = new RestClient(LOGIN_URL);
client.AddParam("Email", _username);
client.AddParam("Passwd", _password);

try {
  client.Execute(RequestMethod.POST);
} catch (Exception e) {
  e.printStackTrace();
}
String response = client.getResponse();

但是这里我想以 JSON 的形式发送参数,例如我想以这种形式发送参数:

{
  "login":{
    "Email":_username,
    "Passwd":_password,
  }
}

那么,任何人都可以帮助我吗?如何以 JSON 的形式发送参数?

4

1 回答 1

3

您发布的示例使用某人放在一起的“库”作为 Apache 的 HttpClient 类的包装器。这不是一个特别好的。但是您根本不需要使用该包装器,HttpClient 本身使用起来非常简单。这是您可以构建的代码示例:

final String uri = "http://www.example.com";
final String body = String.format("{\"login\": {\"Email\": \"%s\", \"Passwd\": \"%s\"}", "me@email.com", "password");

final HttpClient client = new DefaultHttpClient();
final HttpPost postMethod = new HttpPost(uri);
postMethod.setEntity(new StringEntity(body, "utf-8"));

try {
    final HttpResponse response = client.execute(postMethod);
    final String responseData = EntityUtils.toString(response.getEntity(), "utf-8");
} catch(final Exception e) {
    // handle exception here
}

请注意,您很可能会使用 JSON 库来序列化 POJO 并创建请求 JSON。

于 2012-11-25T06:02:31.823 回答