2015-06-22 2 views
0

не пост у меня есть такой код:андроида ничего URL (без ошибок)

public class MainActivity extends ActionBarActivity { 
    EditText usernameEditText; 
    EditText passwordEditText; 
    public Button saveme; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     usernameEditText = (EditText) findViewById(R.id.username); 
     passwordEditText = (EditText) findViewById(R.id.pass); 

     saveme = (Button) findViewById(R.id.loginn); 
     saveme.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       String givenUsername = usernameEditText.getEditableText().toString(); 
       String givenPassword = passwordEditText.getEditableText().toString(); 
        new LoginTask(MainActivity.this,givenUsername, givenPassword).execute(); 

        // CALL GetText method to make post method call    
      } 
     }); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

class LoginTask extends AsyncTask<Void, Void, String>{ 
    private String username; 
    private String password; 
    private Context context; 

    public LoginTask(Context context, String username, String password) { 
     this.username = username; 
     this.password = password; 
     this.context = context; 
    } 

    @Override 
    protected String doInBackground(Void... voids) { 
     try{ 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://facenegah.com/android/login.php"); 
      List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
      nameValuePairs.add(new BasicNameValuePair("email", username)); 
      nameValuePairs.add(new BasicNameValuePair("pass", password)); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      String responseText = EntityUtils.toString(entity); 
      return responseText; 
     } 
     catch(Exception ex) 
     { 

     } 
     return null; 
    } 

Это не бросать какие-либо ошибки, и работает хорошо, без силы закрытия. Тем не менее, это не POSTing что-либо URL, он даже не открывает его!

Почему это происходит? Может кто-нибудь мне помочь?

+1

проверить на стороне сервера, что, как они улавливают параметры запроса ... –

+0

им работы с PHP 5 лет .. я проверка журналов и даже этот файл открывает свой запрос на вставку в базу данных даже тогда, когда у него нет содержимого _POST или _GET, но этот код Android не может даже открыть его с данными или без данных. – user1772630

+0

06-22 13: 17: 02.864 1243-1296/system_process W/AudioTrack : AUDIO_OUTPUT_FLAG_FAST отрицается клиентом, я получаю эту ошибку в консольном андроиде, когда я нажимаю кнопку – user1772630

ответ

0

Вместо

String responseText = EntityUtils.toString(entity); 

Try:

String responseText = convertResponseToString(response , entity); 


private String convertResponseToString(HttpResponse response, 
     HttpEntity entity) { 

    String resp = ""; 
    try { 
     InputStream inputStream = entity.getContent(); 
     if (response.containsHeader("Content-Encoding") 
       && response.getLastHeader("Content-Encoding").toString() 
         .contains("gzip")) { 

      GZIPInputStream gzip = new GZIPInputStream(inputStream); 
      StringBuffer szBuffer = new StringBuffer(); 
      byte tByte[] = new byte[1024]; 
      while (true) { 
       int iLength = gzip.read(tByte, 0, 1024); 
       if (iLength < 0) 
        break; 
       szBuffer.append(new String(tByte, 0, iLength)); 
      } 
      resp = szBuffer.toString(); 
     } else { 
      BufferedReader in = new BufferedReader(new InputStreamReader(
        inputStream)); 
      StringBuffer responseString = new StringBuffer(); 
      String temp = null; 
      while ((temp = in.readLine()) != null) { 
       responseString.append(temp); 
      } 
      resp = responseString.toString(); 


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

    } 

    return resp; 
} 
+0

, это почему мой код даже не публикует его? – user1772630

+0

Я думаю, вы должны попробовать это один раз. –

+0

нет его не работает ... все равно ничего не пишу – user1772630

0

Я понял это. Это потому, что я написал тип разрешения в нижнем регистре

Оно должно быть:

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
+0

Как это не привело к исключению безопасности? – Zerp

+0

i dont know, im using android 5 SDK – user1772630

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