2016-04-20 3 views
0

Ich benutze Domain-Namen, um meine Ruhe Web-Service in Google App-Engine über meine Android-App gehostet.But gibt es 404 nicht gefunden Ausnahme.Können wir Domain-Namen anstelle von IP-Adresse in Android verwenden

So können wir Domain-Namen anstelle der IP-Adresse des Remote-Servers verwenden.

+0

ja. Sie können Domain anstelle von IP verwenden. –

+0

ja du kannst. Wenn Sie ein Codebeispiel teilen, können wir Ihnen helfen. – bmavus

+1

Was passiert, wenn Sie über Ihren Webbrowser auf dieselbe URL zugreifen? Dadurch können Sie herausfinden, ob der Fehler in der URL oder in Ihrer Software enthalten ist. – TAM

Antwort

-1
public class LocationServerRequest { 

private static final Logger LOGGER = LoggerFactory.getLogger(LocationServerRequest.class); 
private static final String TAG = LocationServerRequest.class.getSimpleName(); 

ProgressDialog progressDialog; 
public static final int CONNECTION_TIMEOUT = 1000 * 15; 
private static final String JSON = ".json"; 

public LocationServerRequest(Context context) { 
    progressDialog = new ProgressDialog(context); 
    progressDialog.setCancelable(false); 
    progressDialog.setMessage("Please wait..."); 

} 


public void fetchHolidayPackageLocationInBackground(LocationCallBackResponse locationCallBackResponse) { 
    progressDialog.show(); 
    new fetchHolidayPackageLocationAsyncTask(locationCallBackResponse).execute(); 
} 

public class fetchHolidayPackageLocationAsyncTask extends AsyncTask<Void, Void, LocationResponse> { 

    LocationCallBackResponse locationCallBackResponse; 

    public fetchHolidayPackageLocationAsyncTask(LocationCallBackResponse locationCallBackResponse) { 
     this.locationCallBackResponse = locationCallBackResponse; 
    } 

    @Override 
    protected LocationResponse doInBackground(Void... params) { 
     final String HOLIDAY_PACKAGE_LOCATION = ApiServerAddress.API_URL_HOLIDAY_PACKAGE + Url.AgentAPIUrls_V1.HOLIDAY_PACKAGE_LOCATION + JSON ; 
     LocationResponse locationResponse = null; 
     RestRequestWrapper restRequestWrapper = new RestRequestWrapper("toc","api",null,HOLIDAY_PACKAGE_LOCATION,"",LocationResponse.class, HTTPREQUESTMETHOD.POST); 
     try { 
      RestWebServiceCaller restWebServiceCaller = new RestWebServiceCaller(); 
      LocationResponse response = (LocationResponse) restWebServiceCaller.processRequest(restRequestWrapper); 
      LOGGER.info("RESULT : "+response); 
     }catch (Exception e){ 
      LOGGER.error("Something went wrong while getting response : ",e); 
      e.printStackTrace(); 
     } 
     return locationResponse; 
    } 

    @Override 
    protected void onPostExecute(LocationResponse locationResponse) { 
     progressDialog.dismiss(); 
     locationCallBackResponse.fetchHolidayPackageLocation(locationResponse); 
     super.onPostExecute(locationResponse); 
    } 
} 

} 

public class RestWebServiceCaller { 
private static final Logger LOGGER = LoggerFactory.getLogger(RestWebServiceCaller.class); 

Object result = null; 
HttpURLConnection urlConnection; 

public Object processRequest(RestRequestWrapper restRequestWrapper) throws Exception { 
    try{ 
     URL url = new URL(restRequestWrapper.getUrl()); 
     urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.setReadTimeout(10000);///*milliseconds*/ 
     urlConnection.setConnectTimeout(15000);/* milliseconds */ 

     //make some HTTP header nicety 
     urlConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8"); 
     urlConnection.setRequestProperty("Host", "android.schoolportal.gr"); 

     int responseCode = -1; 
     LOGGER.info("Calling --> " + restRequestWrapper.getProvider() + " :- " + restRequestWrapper.getOperation()); 
     LOGGER.info("API URL --> " + restRequestWrapper.getUrl()); 
     switch (restRequestWrapper.getHttprequestmethod()) { 
      case GET: 
       urlConnection.setRequestMethod("GET"); 
       responseCode = urlConnection.getResponseCode(); 
       break; 
      case POST: 
       urlConnection.setDoInput(true); 
       urlConnection.setDoOutput(true); 
       urlConnection.setRequestMethod("POST"); 
       /*DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream()); 
       // 5.3 Copy Content "JSON" into 
       mapper.writeValue(wr, restRequestWrapper.getRequestObject()); 
       // 5.4 Send the request 
       wr.flush(); 

       // 5.5 close 
       wr.close();*/ 
        if(restRequestWrapper.getRequestObject() != null){ 
         OutputStream os = new BufferedOutputStream(urlConnection.getOutputStream()); 
         os.write(restRequestWrapper.getRequestObject().toString().getBytes()); 
         os.flush();//clean up 
        } 
       responseCode = urlConnection.getResponseCode(); 
       break; 
     } 
     LOGGER.info("Response Code : " + responseCode); 
     LOGGER.info("Response Message : " + urlConnection.getResponseMessage()); 
     if(responseCode == HttpURLConnection.HTTP_OK){ 
      ObjectMapper mapper = new ObjectMapper(); 
      BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
      String inputLine; 
      StringBuffer response = new StringBuffer(); 
      while ((inputLine = in.readLine()) != null) { 
       response.append(inputLine); 
      } 
      in.close(); 
      LOGGER.info(response.toString()); 
      result = mapper.readValue(response.toString(), restRequestWrapper.getResponseClass()); 
      return result; 
     }else{ 
      BufferedReader errorBufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getErrorStream())); 
      String inputLine; 
      StringBuffer errorResponse = new StringBuffer(); 
      while ((inputLine = errorBufferedReader.readLine()) != null) { 
       errorResponse.append(inputLine); 
      } 
      errorBufferedReader.close(); 
      LOGGER.error("Error Message from API : ",errorResponse.toString()); 
     } 
    }catch(Exception ex){ 
     LOGGER.error("Exception occurred in calling rest web service : ", ex); 
    } finally { 
     //urlConnection.disconnect(); 
    } 
    return result; 
} 
} 
Verwandte Themen