I have a e-commerce website which uses Magento. How can I use the REST API on Magento to connect to my Android Application?
1条回答 默认 最新
- dozoqn3347 2015-10-04 15:07关注
Complete sample for calling restful webservice RestFulWebservice.java this activity class
public class RestFulWebservice extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.rest_ful_webservice); final Button GetServerData = (Button) findViewById(R.id.GetServerData); GetServerData.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // WebServer url change it accordingly String serverURL = "http://androidexample.com/media/webservice/JsonReturn.php"; // Use AsyncTask execute Method To Prevent ANR Problem new LongOperation().execute(serverURL); } }); } // Class with extends AsyncTask class private class LongOperation extends AsyncTask<String, Void, Void> { // Required initialization private final HttpClient Client = new DefaultHttpClient(); private String Content; private String Error = null; private ProgressDialog Dialog = new ProgressDialog(RestFulWebservice.this); String data =""; TextView uiUpdate = (TextView) findViewById(R.id.output); TextView jsonParsed = (TextView) findViewById(R.id.jsonParsed); int sizeData = 0; EditText serverText = (EditText) findViewById(R.id.serverText); protected void onPreExecute() { // NOTE: You can call UI Element here. //Start Progress Dialog (Message) Dialog.setMessage("Please wait.."); Dialog.show(); try{ // Set Request parameter data +="&" + URLEncoder.encode("data", "UTF-8") + "="+serverText.getText(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // Call after onPreExecute method protected Void doInBackground(String... urls) { /************ Make Post Call To Web Server ***********/ BufferedReader reader=null; // Send data try { // Defined URL where to send data URL url = new URL(urls[0]); // Send POST data request URLConnection conn = url.openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write( data ); wr.flush(); // Get the server response reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder sb = new StringBuilder(); String line = null; // Read Server Response while((line = reader.readLine()) != null) { // Append server response in string sb.append(line + " "); } // Append Server Response To Content String Content = sb.toString(); } catch(Exception ex) { Error = ex.getMessage(); } finally { try { reader.close(); } catch(Exception ex) {} } /*****************************************************/ return null; } protected void onPostExecute(Void unused) { // NOTE: You can call UI Element here. // Close progress dialog Dialog.dismiss(); if (Error != null) { uiUpdate.setText("Output : "+Error); } else { // Show Response Json On Screen (activity) uiUpdate.setText( Content ); /****************** Start Parse Response JSON Data *************/ String OutputData = ""; JSONObject jsonResponse; try { /****** Creates a new JSONObject with name/value mappings from the JSON string. ********/ jsonResponse = new JSONObject(Content); /***** Returns the value mapped by name if it exists and is a JSONArray. ***/ /******* Returns null otherwise. *******/ JSONArray jsonMainNode = jsonResponse.optJSONArray("Android"); /*********** Process each JSON Node ************/ int lengthJsonArr = jsonMainNode.length(); for(int i=0; i < lengthJsonArr; i++) { /****** Get Object for each JSON node.***********/ JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); /******* Fetch node values **********/ String name = jsonChildNode.optString("name").toString(); String number = jsonChildNode.optString("number").toString(); String date_added = jsonChildNode.optString("date_added").toString(); OutputData += " Name : "+ name +" " + "Number : "+ number +" " + "Time : "+ date_added +" " +"-------------------------------------------------- "; } /****************** End Parse Response JSON Data *************/ //Show Parsed Output on screen (activity) jsonParsed.setText( OutputData ); } catch (JSONException e) { e.printStackTrace(); } } } } }
rest_full_webservice.xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:fillViewport="true" android:background="#FFFFFF" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:paddingTop="20px" android:id="@+id/serverText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /> <Button android:paddingTop="10px" android:id="@+id/GetServerData" android:text="Restful Webservice Call" android:cursorVisible="true" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <TextView android:paddingTop="20px" android:textStyle="bold" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Server Response (JSON): " /> <TextView android:paddingTop="16px" android:id="@+id/output" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Output : Click on button to get server data." /> <TextView android:paddingTop="20px" android:textStyle="bold" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Parsed JSON : " /> <TextView android:paddingTop="16px" android:id="@+id/jsonParsed" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </ScrollView>
manifest.xml don't forgot to add internet permission
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
I think you required OAUth 2.0, you can get sample from https://github.com/cbitstech/xsi-android scribe library is the best way to do this.
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 关于#python#的问题:自动化测试