2016-09-24 10 views
2

私は最近、PHPスクリプトに文字列を送信するはずのjavaでコードを書いています。しかし、それは私がアンドロイドプログラムで使用するときに動作することを拒否します。誰かが私が問題の原因を見つけるのを助けることができたと思った!Android html POSTが機能しない、エラーが発生していない

public static String main(String x, String y){ 
    if (android.os.Build.VERSION.SDK_INT > 9) 
    { 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
}else{ 

     try{ 

      String username = x; 
      String password = y; 

      URL url = new URL(login_url); 
      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
      httpURLConnection.setRequestMethod("POST"); 
      httpURLConnection.setDoInput(true); 
      httpURLConnection.setDoOutput(true); 

      OutputStream outputStream = httpURLConnection.getOutputStream(); 
      BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); 

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

      bufferedWriter.write(post_data); 
      bufferedWriter.flush(); 
      bufferedWriter.close(); 
      outputStream.close(); 

      // LÄSER FRÅN HEMSIDAN 

      InputStream inputStream = httpURLConnection.getInputStream(); 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); 
      String result=""; 
      String line=""; 
      while((line = bufferedReader.readLine()) != null){ 

       result += line; 
      } 



      //AVSLUTA CONNECTION 
      bufferedReader.close(); 
      inputStream.close(); 
      httpURLConnection.disconnect(); 

      return result; 

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



    return null; 

} 

私は

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

を追加することによって、マニフェストのインターネットアクセス権を許可しましたが、それは単に私に何の結果を与えません。最初は私はおそらくPHPスクリプトに何かが欠けていたと思ったが、それは完全にうまくいけば日食でテストされているので、何か間違っているか、アンドロイドの部分から右に欠けている必要がありますか?

+0

あなたはデータをフラッシュして得たものを見た後、この 'Log.d(" HTTPSENDER "、" + httpURLconnection.getResponseCode());場合によっては、これもあなたの奇妙なエラーを解決することができます。 – user1506104

+0

@ user1506104ありがとう、私はそれを打つと何が起こるか見てみましょう! :) – Janono

+0

レスポンスコードを取得しましたか?それは機能しましたか? – user1506104

答えて

1

elseブロックが実行されていることを確認してください。

0

これは非常に悪いことですが、代わりにRetrofitライブラリを使用してREST APIを消費します。 http://www.vogella.com/tutorials/Retrofit/article.html

+0

何が悪いですか?私のコードを保護するのではなく、学ぶために質問しています:) – Janono

+0

「保護」には何もありません - あなたのネットワークコードのテストを書くべきです、あるいはいくつかのAPIが動作していないか、そのAPIを消費するあなたのコードには何らかのエラーがあります。一方、そのライブラリはすでにテストされています。 –

関連する問題