2016-08-23 9 views
-1

私は同じ問題で多くの投稿を読んでいて、ソリューションを適用しようとしましたが、誰も私のために働いていませんでした。私はJavaとAndroidについてはかなり新しいです。 URLは「https」ですが、これはエラーではありません。私のJavaコードは次のとおりです。レスポンスコード500 Android POSTメソッド

public class Main3Activity extends AppCompatActivity { 

    Button b1; 

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

     b1 = (Button) findViewById(R.id.button_pago); 
     b1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       try { 
        new SendPostRequest().execute(); 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 

    } 




    public class SendPostRequest extends AsyncTask<String, Void, String> { 

     protected void onPreExecute(){} 

     protected String doInBackground(String... arg0) { 

      try { 

       URL url = new URL("https://www.myweb.com/login_app.php"); 

       JSONObject postDataParams = new JSONObject(); 
       postDataParams.put("precio", "5000"); 
       postDataParams.put("texto", "f...h"); 
       Log.e("params",postDataParams.toString()); 

       HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
       conn.setReadTimeout(15000 /* milliseconds */); 
       conn.setConnectTimeout(15000 /* milliseconds */); 
       conn.setRequestMethod("POST"); 
       conn.setDoInput(true); 
       conn.setDoOutput(true); 

       OutputStream os = conn.getOutputStream(); 
       BufferedWriter writer = new BufferedWriter(
         new OutputStreamWriter(os, "UTF-8")); 
       writer.write(getPostDataString(postDataParams)); 

       writer.flush(); 
       writer.close(); 
       os.close(); 

       int responseCode=conn.getResponseCode(); 

       if (responseCode == HttpsURLConnection.HTTP_OK) { 

        BufferedReader in=new BufferedReader(new 
          InputStreamReader(
          conn.getInputStream())); 

        StringBuffer sb = new StringBuffer(""); 
        String line=""; 

        while((line = in.readLine()) != null) { 

         sb.append(line); 
         break; 
        } 

        in.close(); 
        return sb.toString(); 

       } 
       else { 
        return new String("false : "+responseCode); 
       } 
      } 
      catch(Exception e){ 
       return new String("Exception: " + e.getMessage()); 
      } 

     } 

     @Override 
     protected void onPostExecute(String result) { 
      Toast.makeText(getApplicationContext(), result, 
        Toast.LENGTH_LONG).show(); 
     } 
    } 

    public String getPostDataString(JSONObject params) throws Exception { 

     StringBuilder result = new StringBuilder(); 
     boolean first = true; 

     Iterator<String> itr = params.keys(); 

     while(itr.hasNext()){ 

      String key= itr.next(); 
      Object value = params.get(key); 

      if (first) 
       first = false; 
      else 
       result.append("&"); 

      result.append(URLEncoder.encode(key, "UTF-8")); 
      result.append("="); 
      result.append(URLEncoder.encode(value.toString(), "UTF-8")); 

     } 
     return result.toString(); 
    } 
} 

ありがとうございます。私はしばらく前にこの問題に遭遇していた

81.184.8.77 - - [23/Aug/2016:12:54:05 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-" 
81.184.8.77 - - [23/Aug/2016:12:59:37 +0200] "POST /login_app.php HTTP/1.1" 500 10793 "-" "Dalvik/2.1.0 (Linux; U; Android 5.1.1; ONE E1001 Build/LMY47V)" "-" 
81.184.8.77 - - [23/Aug/2016:13:01:05 +0200] "POST /login_app.php HTTP/1.1" 500 10807 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-" 
81.184.8.77 - - [23/Aug/2016:13:01:07 +0200] "POST /login_app.php HTTP/1.1" 500 379 "-" "Dalvik/1.6.0 (Linux; U; Android 4.4.2; Android SDK built for x86 Build/KK)" "-" 
+3

500は内部サーバーエラーです。したがって、何が起きているのかを知るには、サーバのログファイルを調べてください。 – Jens

+0

ありがとうございます。私は元の投稿を更新しました – alberzyzz

+1

これはアクセスログです、そこに何かエラーが表示されません。 – Jens

答えて

0

解決策を見つけました:allow_url_fopenの値を設定する必要がありました。この変数はphp.iniにあります。私のドメインプロバイダのWebページに行って、プライベートエリアに入り、PHP設定を探す必要がありました。 。

私はそれが他の人に役立つと助けてくれることを願っています。

1

は、ログファイルの確認、私は次のような多くのメッセージを発見しました。サーバーのログは、問題の解決に役立ちます。

このようなエラーのログは通常、次の場所にあります。var/log/apache2/error.logこれらのエラーを記録するには、php.iniファイルを変更する必要があります。

希望はこのことができます:)

+0

これはコメントではありません回答はありません – Jens

+0

あなたの答えをありがとう。ログの場所が見つかりません。 – alberzyzz

0

あなたはここでHTTPステータスコード https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

500内部サーバーエラー

一般的なエラーメッセージの異なる種類について読むことができ、時に予期しない状態与えられましたより具体的なメッセージは適切ではありません。

+0

これはコメントではありません。 – Jens

関連する問題