簡體   English   中英

通過JSON Rest Server(Jersey)和Android進行通信

[英]Communicating by JSON Rest Server (Jersey) and Android

我正在嘗試做一個簡單的應用程序,其中:

(服務器)-澤西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();
    }
}

提前致謝。

看來您是在UI線程上發出HTTP請求,而Android不會。 您至少應使用AsyncTask 有關網絡操作的更多信息,請點擊此處

另外,請確保在清單中包括網絡權限:

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

還可以查看Android的新Volley庫。 它應該使網絡請求簡單得多。 有一個教程在這里和一些更多的信息的谷歌IO談話

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM