2017-03-07 20 views
0

私は以前PHPスクリプトを呼び出すためにHttpClientを使用していましたが、常に非推奨となっていたので、URLは新しい方法です。私はそれを実装しようとしていますが、スクリプトは実行されていません。私のスクリプトはブラウザから実行したときに私の携帯電話で通知を送信します。ブラウザからコードを呼び出すときには通知がありません。ここに私のコードです:PHPスクリプトはAndroidから実行されていません

package jss.phpcalling; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 

import java.net.HttpURLConnection; 
import java.net.URL; 


public class MainActivity extends AppCompatActivity { 

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


    private class automessage extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected Void doInBackground(Void... voids) { 
      try { 
       URL url = new URL("full path of my php"); 

    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      conn.connect(); 
      int d = conn.getResponseCode(); 
      System.out.print(d); 
      Log.e("Done", "Called"); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 

私はそれを動作させるために他に何がありますか?

編集: コードを更新し、不要な行を削除し、応答がない値が印刷されていない、ヌルです。

+0

不明確なものがある場合はお問い合わせください、と混乱して申し訳ありません 幸運は非常に一般的である「動作しません」。 – emaillenin

+0

私はクエリを編集しましたが、実際には私のPHPスクリプトはコードを使用して実行されていません。私はブラウザを通してそれを開いたときに通知を送りますが、コードではありません。 – Panache

+0

本当にバックエンドから情報を取得したい場合は、PHPコードからjsonまたはxml出力を返します。パーサーを使用してアプリケーションにデータを取得する –

答えて

0

私はあなたの仲間を得た:

public class MainActivity extends AppCompatActivity { 

Button send, update, restart; 
private SharedPreferences speicher; 
TextView tv, titel, tvScore; 
final String scriptURLstring = "http://.../yourphp.php"; 
int score; 

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

    init(); 
} 

private void init() { 
    tv = (TextView) findViewById(R.id.textView1); 
    tvScore = (TextView) findViewById(R.id.tScore); 


    if (internetAvalable()) { 
     sendToServer(string of what you may send to server); 


    } else { 
     Toast.makeText(getApplicationContext(), "no connection", Toast.LENGTH_SHORT).show(); 
    } 

    send.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent b = new Intent(MainActivity.this, Menu.class); 
      startActivity(b); 
      finish(); 
     } 
    }); 

    restart.setOnClickListener(new View.OnClickListener() { 


} 

public void sendToServer(final int score, final String name) { 

    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       String textparam = "&text1=" + URLEncoder.encode(name, "UTF-8"); 

       URL scriptURL = new URL(scriptURLstring); 
       HttpURLConnection connection = (HttpURLConnection) scriptURL.openConnection(); 
       connection.setDoOutput(true); 
       connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
       connection.setFixedLengthStreamingMode(textparam.getBytes().length); 

       OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
       writer.write(textparam); 
       writer.flush(); 
       writer.close(); 

       InputStream answerInputStream = connection.getInputStream(); 
       final String answer = getTextFromInputStream(answerInputStream); 

       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         tv.setText(answer); 
        } 
       }); 
       answerInputStream.close(); 
       connection.disconnect(); 

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

     } 
    }).start(); 

} 

public String getTextFromInputStream(InputStream is) { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder stringBuilder = new StringBuilder(); 
    String zeile; 
    try { 
     while ((zeile = reader.readLine()) != null) { 
      stringBuilder.append(zeile + "\n"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return stringBuilder.toString().trim(); 

} 

public boolean internetAvalable() { 
    ConnectivityManager cM = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
    NetworkInfo nwi = cM.getActiveNetworkInfo(); 
    return nwi != null && nwi.isConnectedOrConnecting(); 
} 

}

+0

ボタンのいくつかは不要です – Krissini

+0

あなたが受け取るだけの場合は、いくつかの変更があります...ドンノあなたのPHPスクリプトのように見える... – Krissini

関連する問題