0

私が持っている簡単なアプリケーションを実行しようとしています:

(サーバー) - ジャージー RESTful

(クライアント) - Android

JSON経由で通信できるようにしようとしています。いくつかの資料を見てきましたが、まだできませんでした。

私のコードに従ってください。誰かが私を助けることができれば。私は非常に満足している

サーバーコード:

  @POST
  @Consumes({ MediaType.APPLICATION_JSON })
  @Produces({ MediaType.APPLICATION_JSON })
  public void consomeJson(Gson json) {
      System.out.println(json);
  }

クライアントコード:

public void onBtnSalvarClicked(View view)
{        
    TextView t = (TextView) findViewById(R.id.text);

    TextView nome = (TextView) findViewById(R.id.txtNome);
    TextView login = (TextView) findViewById(R.id.txtLogin);
    TextView senha = (TextView) findViewById(R.id.txtSenha);

    Usuario usuario = new Usuario();
    usuario.setNome(nome.getText().toString());
    usuario.setLogin(login.getText().toString());
    usuario.setSenha(senha.getText().toString());

    Gson gson = new Gson();
    params.put("var", gson.toJson(usuario));

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://192.168.1.2:8080/rest/hello");

    try{
        StringEntity se = new StringEntity(gson.toString());
        httppost.setEntity(se);
        HttpResponse response = httpclient.execute(httppost);
    }
    catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}

前もって感謝します。

4

1 に答える 1

1

Android が好まない UI スレッドで HTTP リクエストを行っているようです。少なくともAsyncTaskを使用する必要があります。ネットワーク操作の詳細については、こちらをご覧ください。

また、マニフェストにネットワーク アクセス許可が含まれていることを確認してください。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Android の新しい Volley ライブラリもチェックしてください。これにより、ネットワーク リクエストがはるかに簡単になるはずです。ここにはチュートリアルがあり、Google IO トークにはさらに詳しい情報があります。

于 2013-09-14T06:19:42.607 に答える