2015-06-09 3 views
3

Я делаю заявку на Android. Он должен дать мне ответ в виде строки. То, что я делаю, чтобы проверить это. Однако он возвращает мне пустую строку. Это в сообщении тоста. Я что-то делаю неправильно, какие-то намеки для меня, ребята?Проверьте, является ли POST успешным (Android)

private void makePostRequest() throws UnsupportedEncodingException { 
    SharedPreferences postpreference = this.getSharedPreferences("preferences", MODE_PRIVATE); 
    String password = postpreference.getString("Password", null); 
    String username = postpreference.getString("Username", null); 

    String data = URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8"); 
    data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8"); 

    String text = ""; 
    BufferedReader reader = null; 

    try { 
     // send post data request 
     URL url = new URL("secreturl but working"); 
     URLConnection conn = url.openConnection(); 

     OutputStreamWriter streamWriter = new OutputStreamWriter(conn.getOutputStream()); 

     streamWriter.write(data); 
     streamWriter.flush(); 

     //read the response 
     reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 

     while ((line = reader.readLine()) != null) { 
      // Append server response in string 
      sb.append(line + "\n"); 
     } 
     text = sb.toString(); 
    } catch (Exception ex) { 

    } finally { 
     try { 
      reader.close(); 
     } catch (Exception e) { 

     } 
    } 
    // Show response on activity 
    Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show(); 

} 
+0

не достаточно ли просто проверить код ответа? – nafas

+0

Наверное, но это не проблема здесь ... Проблема в том, что я не получаю responsecode :) – AndroidTestor

+0

Я не вижу, где вы делаете правильный HTTP-запрос здесь? –

ответ

0

Я установил его после первого решения в этой ссылке: Android, Java: HTTP POST Request

Спасибо за помощь

Edit: правильный способ сделать запрос на почту.

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

try { 
// Add your data 
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!")); 
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

// Execute HTTP Post Request 
HttpResponse response = httpclient.execute(httppost); 

} catch (ClientProtocolException e) { 
// TODO Auto-generated catch block 
} catch (IOException e) { 
// TODO Auto-generated catch block 
} 
+0

@ Glorfindel, только что отредактировал мой ответ :) – AndroidTestor

0

Проверьте код ответа. Тогда получите ответ только в том случае, если вы получите правильный код ответа.

int responseCode = conn.getResponseCode(); 
+0

Я делаю это, затем я пытаюсь отобразить в тосте, но приложение падает. Разве это не логично, чтобы положить это в Тост? По-моему, он должен отображать ответ. Приложение быстро вылетает, даже не создает stacktrace. – AndroidTestor

Смежные вопросы