2014-07-26 1 views
2

API 링크 : http://www.familybuds.com/storegrunt-new/api_home/validate_step_one/platform/1Android를 얻는 이유 : 대상 서버가 응답하지 않습니까?

POST 매개 변수 : store_name = "abc" 코드는이 API는 25July까지 잘 작동했다

에서 GoDaddy 서버에 있지만 갑자기 안드로이드 APP에 26 일 아침부터 작동을 멈췄습니다. 동일한 API가 iPhone APP에서 제대로 작동합니다.

안드로이드 코드 : 안드로이드에 대한

HttpParams httpParameters = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParameters, 10000); 
HttpConnectionParams.setSoTimeout(httpParameters, 10000+12000); 

DefaultHttpClient client = new DefaultHttpClient(httpParameters); 
HttpPost httppost = new HttpPost(url); 

HttpResponse response; 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

client.addRequestInterceptor(new HttpRequestInterceptor() {    

     @Override 
     public void process(HttpRequest request, HttpContext context) 
       throws HttpException, IOException { 
      // TODO Auto-generated method stub 
      if (!request.containsHeader("Accept-Encoding")) { 
       request.addHeader("Accept-Encoding", "gzip"); 
      } 
     } 

    }); 

client.addResponseInterceptor(new HttpResponseInterceptor() { 

     public void process(
       final HttpResponse response, 
       final HttpContext context) throws HttpException, IOException { 
      HttpEntity entity = response.getEntity(); 
      if (entity != null) { 
       Header ceheader = entity.getContentEncoding(); 
       if (ceheader != null) { 
        HeaderElement[] codecs = ceheader.getElements(); 
        for (int i = 0; i < codecs.length; i++) { 
         if (codecs[i].getName().equalsIgnoreCase("gzip")) { 
          response.setEntity(
            new GzipDecompressingEntity(response.getEntity())); 
          return; 
         } 
        } 
       } 
      } 
     }    


    }); 

// Log.d(TAG, "Executing request: "+ methodToString(mMethod) +": "+ mUri.toString()); 
response = client.execute(httppost); 

스택 추적 (로그) :

07-26 16:24:28.031: W/System.err(13642): org.apache.http.NoHttpResponseException: The target server failed to respond 
07-26 16:24:28.089: W/System.err(13642): at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85) 
07-26 16:24:28.097: W/System.err(13642): at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174) 
07-26 16:24:28.097: W/System.err(13642): at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179) 
07-26 16:24:28.101: W/System.err(13642): at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235) 
07-26 16:24:28.105: W/System.err(13642): at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259) 
07-26 16:24:28.105: W/System.err(13642): at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279) 
07-26 16:24:28.105: W/System.err(13642): at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121) 
07-26 16:24:28.105: W/System.err(13642): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:421) 
07-26 16:24:28.109: W/System.err(13642): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
07-26 16:24:28.113: W/System.err(13642): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
07-26 16:24:28.113: W/System.err(13642): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
07-26 16:24:28.117: W/System.err(13642): at com.webhelper.WebApiRequest.performJSon(WebApiRequest.java:111) 
07-26 16:24:28.121: W/System.err(13642): at com.webhelper.HttpHelper.doInBackground(HttpHelper.java:171) 
07-26 16:24:28.121: W/System.err(13642): at com.webhelper.HttpHelper.doInBackground(HttpHelper.java:1) 
07-26 16:24:28.124: W/System.err(13642): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
07-26 16:24:28.124: W/System.err(13642): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
07-26 16:24:28.128: W/System.err(13642): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
07-26 16:24:28.128: W/System.err(13642): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
07-26 16:24:28.128: W/System.err(13642): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
07-26 16:24:28.132: W/System.err(13642): at java.lang.Thread.run(Thread.java:1019) 

용액으로부터 봤어 .. Https connection Android하지만 운

Amazon EC2 Server에 동일한 서버 코드를 넣으려고했는데 API가 정상적으로 작동했습니다. 안드로이드와 아이폰 APP와 함께.

사람이 GoDaddy와

답변

4
HttpParams httpParameters = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParameters, 10000); 
HttpConnectionParams.setSoTimeout(httpParameters, 10000+12000); 


DefaultHttpClient client = new DefaultHttpClient(httpParameters); 
HttpPost httppost = new HttpPost(url); 

에 서버 (API)와 통신하기위한 안드로이드 응용 프로그램의 갑작스러운 비 작업에 대한 이유가 될 수 있습니다 무엇을 도와 드릴까요이

HttpParams httpParameters = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(httpParameters, 10000); 
HttpConnectionParams.setSoTimeout(httpParameters, 10000+12000); 


DefaultHttpClient client = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost(url); 
httpost.setParams(httpParameters); 
과 코드 위의 교체 시도

이 솔루션은 나를 위해 일했다 ....

+1

이것은 나를 위해 일한다. 나는 2014 년 7 월 25 일 이후 같은 문제가 있습니다. – Rishi

+0

안녕하세요 @Dharni, 나는 똑같은 문제가 있었으며 대답에 의해 해결되었습니다. 이전에 제대로 작동 했으므로이 변경이 필요한 이유를 말씀해주십시오. –