###前提・実現したいこと
HttpURLConnectionを使ってサーバー側へPOSTデータの送信をし、PHPを使って受け取りたいと思っています。
###発生している問題・エラーメッセージ
POSTデータの送信は、サーバーのログファイルにPOSTするたびに、ログが取れていて、javaの方ではきちんと値が入っている状態なのですが、php側で$_POST['sampleId'];と記述してもデータが取れません。java側でjsonObjectを使っているので、そう言うものも関係しているのでしょうか。
javaの記述は、下記のサイトを参考にさせて頂きました。有難う御座います。
http://blog.a1yama.com/entry/2016/01/26/154932
###ソースコード
public class Test extends AsyncTask<String, String, String> {
private TestActivity _sample;
public Test(TestActivity sample) { super(); _sample = sample; } @Override protected String doInBackground(String...value) { String sampleId = value[0]; String base_url = value[1]; BufferedReader reader = null; OutputStream os = null; HttpURLConnection urlCon = null; try { URL url = new URL(base_url); urlCon = (HttpURLConnection) url.openConnection(); urlCon.setReadTimeout(10000); urlCon.setConnectTimeout(20000); urlCon.setRequestMethod("POST"); urlCon.setDoInput(true); urlCon.setDoOutput(true); urlCon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); urlCon.setUseCaches(false); urlCon.connect(); JSONObject jsonObject = new JSONObject(); jsonObject.put("sampleId", sampleId); // データを送信する os = urlCon.getOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); writer.write(String.valueOf(jsonObject)); writer.flush(); writer.close(); os.close(); int status = urlCon.getResponseCode(); switch (status) { case HttpURLConnection.HTTP_OK: InputStream is = urlCon.getInputStream(); reader = new BufferedReader(new InputStreamReader(is)); String httpSource = new String(); String str; while (null != (str = reader.readLine())) { httpSource = httpSource + str; } is.close(); break; case HttpURLConnection.HTTP_UNAUTHORIZED: break; default: break; } } catch (Exception e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } if (os != null) { os.close(); } if (urlCon != null) { urlCon.disconnect(); } } catch (IOException e) { e.printStackTrace(); } } return null; }
}
###補足情報(言語/FW/ツール等のバージョンなど)
android/php/
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。