2

重複の可能性:
AndroidでRequestを介してJSONオブジェクトを送信するにはどうすればよいですか?

私はAndroid開発に慣れていないため、JSON形式でWebサービスにリクエストを送信する際に問題が発生しました。グーグルで、パラメータを使用してリクエストを送信するための次のコードを見つけました。パラメータを次の形式で送信するJavaクラスは次のとおりです。

Main.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 に答える