2017-04-21 49 views
-4

網址爲:http://localhost 方法類型:發佈 頭:內容類型:應用程序/ JSON,解碼:2 數據:XX如何在Android中使用POST方法後得到的反應

我們怎樣才能做到這一點android ??,我如何得到這個答覆? 我看到的HttpClient已被棄用

任何幫助,將不勝感激

+0

使用凌空http://www.androidhive.info/2014/05/android-working-with-volley-library-1/ –

回答

2

嘗試使用HttpURLConnection的

String Url, query; 

    InputStream inputStream; 
    HttpURLConnection urlConnection; 
    byte[] outputBytes; 
    String ResponseData; 
    Context context; 
try{ 
      URL url = new URL(Url); 
      urlConnection = (HttpURLConnection) url.openConnection(); 
      outputBytes = query.getBytes("UTF-8"); 
      urlConnection.setRequestMethod("POST"); 
      urlConnection.setDoOutput(true); 
      urlConnection.setConnectTimeout(15000); 
      urlConnection.setRequestProperty("Content-Type", "application/json"); 
      urlConnection.connect(); 

      OutputStream os = urlConnection.getOutputStream(); 
      os.write(outputBytes); 
      os.flush(); 
      os.close(); 

      inputStream = new BufferedInputStream(urlConnection.getInputStream()); 
      ResponseData = convertStreamToString(inputStream); 

    } catch (MalformedURLException e) { 

       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 


    public String convertStreamToString(InputStream is) { 

     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     StringBuilder sb = new StringBuilder(); 

     String line = null; 
     try { 
      while ((line = reader.readLine()) != null) { 
       sb.append((line + "\n")); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       is.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     return sb.toString(); 
    } 
+0

我的迴應將是一個Json對象,雖然 – Venky

+0

它會給在json字符串的響應,你可以將它轉換成jsonObject – AbhayBohra

+0

它說未處理的異常:url中的java.io.IOException .openconnection – Venky

0

您可以使用HttpURLConnection的,如果你不想使用庫,否則你可以用排槍也使網絡調用,因爲抽射更容易管理網絡呼叫! 謝謝!

+0

我可以得到一個例子,即時通訊新的android – Venky

+0

https://www.numetriclabz.com/android-post-and-get-request-using -httpurlconnection /用於HttpURLConnection –

+0

https://code.tutsplus.com/tutorials/an-introduction-to-volley--cms-23800排球 –

1
URL url = new URL("http://yoururl.com"); 
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); 
conn.setReadTimeout(10000); 
conn.setConnectTimeout(15000); 
conn.setRequestMethod("POST"); 
conn.setDoInput(true); 
conn.setDoOutput(true); 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("firstParam", paramValue1)); 
params.add(new BasicNameValuePair("secondParam", paramValue2)); 
params.add(new BasicNameValuePair("thirdParam", paramValue3)); 
OutputStream os = conn.getOutputStream(); 
BufferedWriter writer = new BufferedWriter(
     new OutputStreamWriter(os, "UTF-8")); 
writer.write(getQuery(params)); 
writer.flush(); 
writer.close(); 
os.close(); 
conn.connect(); 

............................................ .......................

private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException 
{ 
    StringBuilder result = new StringBuilder(); 
    boolean first = true; 

    for (NameValuePair pair : params) 
    { 
     if (first) 
      first = false; 
     else 
      result.append("&"); 

     result.append(URLEncoder.encode(pair.getName(), "UTF-8")); 
     result.append("="); 
     result.append(URLEncoder.encode(pair.getValue(), "UTF-8")); 
    } 

    return result.toString(); 
} 
+0

非常感謝,這有幫助,但我如何添加內容類型到這個??,我有一個JSON對象 – Venky

+0

getQuery將返回包含您的JSON的字符串後,你可以提取它。如果代碼可以幫助你,那麼你可以標記爲答案謝謝 –

相關問題