2014-01-15 65 views
-1

嘿所以我對這個android開發世界很新,並且試圖弄清楚幾件事...從android客戶端向web服務器傳遞數據?

首先,我們的目標是能夠在android上創建一個表單並點擊提交按鈕,應該實質上發送數據,就像使用AJAX執行POST和GET響應的網站上的表單一樣。

我在佈局中創建了表單和按鈕,並在java文件中調用了一個onClickListener,它具有來自用戶的輸入文本,但我不知道如何將數據作爲json發送到我的節點。 js服務器。

這裏是我的代碼:

//button for posting details 
Button postWardrobe = (Button) findViewById(R.id.postButton); 

final EditText nameField = (EditText) findViewById(R.id.nameFieldWardrobeScreen); 

postWardrobe.setOnClickListener(new OnClickListener() { 

     private Editable Data; 

     @Override 
     public void onClick(View v) { 

      //below should send data over 
      Data = nameField.getText(); 

     } 

}); 

我只添加當前正在與擔任提交表單的代碼...現在我瞭解HTTP連接的一些事情,但我不知道如何實現它完全或如何將它發送到服務器,因爲它似乎沒有以任何方式鏈接到它...我希望它發佈到我的本地主機,並在未來的服務器...

也,我不知道我應該使用套接字,還是隻使用http ...任何建議和答案發送數據將是非常好的,謝謝。

+0

這完全是對堆棧溢出解決的問題。 http://stackoverflow.com/questions/6218143/android-post-json-using-http – Jon

+0

沒有必要消極的問題...這個答案是從2011年,它不提供圖書館和顯示了很多代碼 – Lion789

回答

1

您需要構建一個JSON對象,然後通過HTTP發送它。

查看這些頁面以及那裏提到的相關類。

create json in android

Make an HTTP request with android

How to send a JSON object over Request with Android?

參見:

http://www.vogella.com/tutorials/AndroidJSON/article.html

+0

謝謝,這有助於我理解如何創建JSON對象......但是,我對第一個http鏈接請求感到困惑,我需要更改清單文件中的權限,因爲該鏈接是第一次我看到一篇文章說(這是從2010年)也寫了很多與這裏提到的和在它後面的鏈接http://developer.android.com/reference/java/net/HttpURLConnection.html ...下面的鏈接如何發送一個JSON對象...也讓我困惑,因爲超時...是否有超時的原因? – Lion789

+0

@ Lion789我對權限並不熟悉。我只是想給你一些一般的指導方針。我猜HttpClient是比HttpURLConnection更高級別的API,但我不完全確定。但是,在我看來他們的方法似乎如此。 –

+0

這是看帖子的問題,我看到了一堆不同的可能的方式,但每個人都困惑着我......我認爲這將是一個簡單的標準方式做ajax get/post ... – Lion789

1

POST和GET,與其他REST調用需要比這多一點的代碼一起。有幾個圖書館可供選擇。改造是更好的記錄之一。一般來說,您需要設置一個httpclient來在後臺任務中進行調用,然後返回一個可以解析的響應(JSON)。 Here is a link to Retrofit

+0

我在考慮使用它,因爲一個圖書館可能會讓這一切變得更容易,但是我處在籬笆上,因爲我寧願不帶一個我不需要的圖書館。 – Lion789

+1

我瞭解您的預訂,但根據我的經驗,您將需要它,尤其是如果您的應用程序要比僅僅一個POST更復雜。在通過HTTP實現背景REST調用時存在很多「疑難雜症」問題。當然,很高興知道你在做什麼,而不是使用第三方庫作爲柺杖,但在這種情況下,你會轉向專家。 For example, here is a SO post on different methods for running the background task soundsofpolaris

+0

好吧有道理...你對這個框架有什麼意見嗎https://jersey.java.net/我找到了一個很好的教程,這就是爲什麼我問...另外,改造是簡單的因爲它看起來在他們的網站?這真的是你所需要的一個POST? @FormUrlEncoded @POST(「/ user/edit」) 用戶updateUser(@Field(「first_name」)字符串優先,@Field(「last_name」)String last); – Lion789

相關問題