2013-06-22 18 views
0

我有點沮喪。我有一個問題。我試圖通過將REST請求發送到服務器來發送用戶的所有輸入。這是請求JSON對象如何看待在服務器上:Android:休息PUT - 如何發送服務器上的數據

{ 
    id: "123", 
    text: "My Name is Peter..., 
    age": 15, 
    name: "Peter", 
    hobbies: [     
      id": 321, 
      hobbie_id": 1, 
      name": "Football", 
      },    
      id": 213, 
      hobbie_id": 1, 
      name": "Basketball", 
      }  
    ], 
    gender: true, 
    version: 1 
} 

我有從的AsyncTask延伸到處理在後臺服務器通信的內部類的類:

public class MyActivity extends Activity{ 

    private class PutServiceTask extends AsyncTask<String, Integer, String> { 


     @Override 
     protected void onPreExecute() { 
      //show Dialogbox 
     } 

     @Override 
     protected String doInBackground(String... urls) { 
      String url = urls[0]; 
      String result = ""; 
      HttpResponse response = doResponse(url); 

      if (response == null) { 
       return result; 
      } 

      return result; 

      private HttpResponse doResponse(String url) { 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPut httpput = new HttpPut(url); 
       HttpResponse response = null; 

       // Add parameters 
       try { 
        response = httpclient.execute(httpput); 
        StatusLine statusLine = response.getStatusLine(); 
        int statusCode = statusLine.getStatusCode(); 
        if(statusCode == HttpStatus.SC_OK){ //200 
         httpput.addHeader("content-type", "application/json"); 
         StringEntity se = new StringEntity(params.toString()); 
         httpput.setEntity(se); 
         HttpEntity entity = response.getEntity(); 
        } 
        else { 
         System.out.println(response.getStatusLine().getReasonPhrase()); 
        } 

       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 


       return response; 
      } 
     } 

    } 
} 

而且問題現在是怎樣把這個在onPostExecute Methode.These在服務器上是我從即EditText上讓我的用戶輸入和轉換的toString:

private String ageString; //age 
private String nameString; //name of the Person 
private String hobbyname; //name of the Hobby 
private String textString; //text 

的另一件事爲t他身份證。這是正確的,服務器生成的ID,對嗎?

我希望有人可以幫助我在這種情況下!

在此先感謝。

回答

0

那麼這太複雜了,你自己來處理它,看看這個庫有更清潔的API和類型安全的數據。

https://github.com/kodart/Httpzoid

下面是一個簡單的使用例子

Http http = HttpFactory.create(context); 
http.post("http://example.com/users") 
    .data(new User("John")) 
    .execute(); 

或更復雜與回調

Http http = HttpFactory.create(context); 
http.post("http://example.com/users") 
    .data(new User("John")) 
    .handler(new ResponseHandler<Void>() { 
     @Override 
     public void success(Void ignore, HttpResponse response) { 
     } 

     @Override 
     public void error(String message, HttpResponse response) { 
     } 

     @Override 
     public void failure(NetworkError error) { 
     } 

     @Override 
     public void complete() { 
     } 
    }).execute(); 

它是全新的,但看起來非常有前途。

相關問題