2016-09-12 185 views
1

我試圖設計一個URL Shortener應用程序,它是我的web應用程序(Link Here)的擴展。問題是,當我試圖連接到我的網站(使用HttpURLConnection類)&解析JSON響應時,它會引發異常。 (我還設計了一個小型的API,它返回時,正確的URL傳遞JSON響應)在Android中連接到遠程網站(使用PHP)時出現連接錯誤

的代碼(即創建問題):

 private String getResponseText(String param) throws IOException 
     { 
     StringBuilder response = new StringBuilder(); 
     URL url = new URL("http://<THE-URL>/shorten-api.php?url="+param); 
     HttpURLConnection httpconn = (HttpURLConnection)url.openConnection(); 

     BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192); 
     String strLine = null; 
     while ((strLine = input.readLine()) != null) 
     { 
      response.append(strLine); 
     } 
     input.close(); 
    return response.toString(); 
} 

參考使用:My Reference

在此先感謝...

+0

拋出什麼錯誤?當這個異常發生時,param的值是什麼?首先想到的是確保param正確編碼爲URL參數。 –

回答

0

我已經找到了解決方案:使用HttpGet API(不建議使用,但方便)。

StringBuffer sb = new StringBuffer(""); 
    String line = ""; 
    try{ 
     String longUrl = (String) params[0]; 
     String link = "http://<SHORTENER_URL>/shorten-api.php?url="+longUrl; 
     URL url = new URL(link); 
     HttpClient client = new DefaultHttpClient(); 
     HttpGet request = new HttpGet(); 
     request.setURI(new URI(link)); 
     HttpResponse response = client.execute(request); 
     BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 

     while((line = in.readLine()) != null) 
     { 
      sb.append(line); 
      break; 
     } 
     in.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    Log.d("SHORT URL",sb.toString()); 
    return sb.toString(); 

然後,我訪問來自這所提取的字符串:

new ShortenAPIConnector(getApplicationContext()).execute(lUrl).get(); 

感謝您的幫助。

相關問題