2013-04-05 3 views
1

나는 웹 서비스에 초보자입니다. 안드로이드에 웹 서비스 (REST)를 통합하고 싶습니다. 누구든지 좋은 자습서를 제안 할 수 있습니까? 당신에 refrence에 대한안드로이드에 RESTful 웹 서비스를 통합하는 방법

+0

PHP/.NET에서 웹 서비스를 개발하고 싶거나 Android에 통합하고 싶습니까? –

+0

http://stackoverflow.com/tags/rest/info –

+0

안녕하세요 Paresh Mayani, 답장을 보내 주셔서 감사합니다. 안드로이드에 RESTful 웹 서비스를 통합하고 싶습니다. –

답변

1

다른 링크 내가 HTTP POST를 위해 한 [[mkyong]1

샘플 코드 및 HTTP GET

import java.io.IOException; 
import java.io.InputStream; 
import java.io.UnsupportedEncodingException; 

import org.apache.http.HttpResponse; 
import org.apache.http.HttpStatus; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.ByteArrayEntity; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.params.BasicHttpParams; 
import org.apache.http.params.HttpConnectionParams; 
import org.apache.http.params.HttpParams; 

import android.os.AsyncTask; 
import android.util.Log; 


public class HttpConnectionHandler { 
    public static final String TAG = HttpConnectionHandler.class.getSimpleName(); 
    private ServerRequestCommand requestCommand; 
    private HttpPost httpPost; 
    private HttpGet httpGet; 
    private HttpClient httpClient; 
    private HttpResponse httpResponse; 

    public HttpConnectionHandler(){ 
     HttpParams httpParameters = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpParameters, 5000); 
     HttpConnectionParams.setSoTimeout(httpParameters, 5000);   
     this.httpClient = new DefaultHttpClient(httpParameters); 
     //this.httpClient = new DefaultHttpClient(); 
    } 

    private void doNetworkConnection(){ 
     new AsyncServerConnector().execute(); 
    } 

    class AsyncServerConnector extends AsyncTask<String, String, String>{ 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
     } 

     @Override 
     protected String doInBackground(String... arg0) { 
      try {    
       if (Utility.isWifiPresent() 
         || Utility.isMobileConnectionPresent()) { 
        //Establish network connection here and set the response to request; if successful 
        //check GET or POST 
        if(requestCommand.getPostData() != null){ 
         //means its POST 
         httpResponse = httpClient.execute(prepareHttpPost()); 
        }else{ 
         //its GET method 
         httpResponse = httpClient.execute(prepareHttpGet()); 
        } 
        if(httpResponse != null){ 
         int statusCode = httpResponse.getStatusLine().getStatusCode(); 
         if(statusCode == HttpStatus.SC_OK){ 
          InputStream inputStream = httpResponse.getEntity().getContent(); 
          String serverResponse = formatServerResponse(inputStream); 
          requestCommand.setServerResponse(serverResponse); 
          requestCommand.setState(RequestCommand.STATE_SUCCESS); 
         }else{ 
          requestCommand.setState(RequestCommand.STATE_SERVER_FAILURE); 
         }      
        }else{ 
         requestCommand.setState(RequestCommand.STATE_SERVER_FAILURE); 
        } 

       } 
       //No network 
       else{ 
        requestCommand.setState(RequestCommand.STATE_NETWORK_FAILURE); 
       }    
      } 
      catch (IOException e) { 
       Log.i(TAG, "IOException during hitting for service: "+requestCommand.getServerUrl()+" and ID "+requestCommand.getRequestId()); 
       requestCommand.setState(RequestCommand.STATE_SERVER_FAILURE); 
      } 
      catch (Exception e) { 
       Log.i(TAG, "Error during hitting for service: "+requestCommand.getServerUrl()+" and ID "+requestCommand.getRequestId()); 
       requestCommand.setState(RequestCommand.STATE_SERVER_FAILURE); 
      } 
      return null; 
     } 

     protected void onPostExecute(String file_url) { 
      Log.i(TAG, "Get response for service: "+requestCommand.getServerUrl()+" and ID "+requestCommand.getRequestId()); 
      NetworkHandler.receiveResponseFromServer(requestCommand); 
      requestCommand = null; 
     } 

    } 

    public HttpPost prepareHttpPost() throws UnsupportedEncodingException { 
     this.httpPost = new HttpPost("your url");  
     httpPost.setHeader("Content-Type", "application/json"); 
     httpPost.setEntity(new ByteArrayEntity(requestCommand.getPostData() 
       .getBytes("UTF8"))); 
     return httpPost; 
    } 

    public HttpGet prepareHttpGet() { 
     this.httpGet = new HttpGet(requestCommand.getServerUrl());  
     return httpGet; 
    } 

    private String formatServerResponse(InputStream inputStream) throws IOException { 
     String serverResponse = null; 
     StringBuffer responseBuffer = new StringBuffer(); 
     byte[] data = new byte[256]; 
     int len = 0; 
     int size = 0; 
     while (-1 != (len = inputStream.read(data))) { 
      responseBuffer.append(new String(data, 0, len, "UTF-8")); 
      size += len; 
     } 

     serverResponse = responseBuffer.toString(); 
     return serverResponse; 
    } 

} 
+0

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – eugen

관련 문제