###前提・実現したいこと
AndroidからJavaサーブレットにPOSTしてJavaサーブレットで情報を取得してデータベースに登録したいです。
サーバーはTomcatを使っています。
Javaサーブレットで情報を受け取る方法とレスポンスするほうほうが知りたいです。
###発生している問題・エラーメッセージ
Javaサーブレットで情報を取得してもnullになっている。
###該当のソースコード
Java
1package to.msn.wings.networkpost; 2 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5import android.view.View; 6 7public class MainActivity extends AppCompatActivity { 8 AsyncNetworkTask task; 9 String data = "山田太郎"; 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 16 task = new AsyncNetworkTask(this); 17 task.execute("http://自分のIPアドレス/kai/Test", data); 18 } 19 20 public void btn_onClick(View view) { 21 task.cancel(true); 22 } 23} 24 25package to.msn.wings.networkpost; 26 27import android.content.Context; 28import android.os.AsyncTask; 29import android.os.SystemClock; 30import android.widget.ProgressBar; 31import android.widget.TextView; 32 33import java.io.BufferedReader; 34import java.io.IOException; 35import java.io.InputStreamReader; 36import java.io.OutputStream; 37import java.io.PrintStream; 38import java.net.HttpURLConnection; 39import java.net.URL; 40 41public class AsyncNetworkTask extends AsyncTask<String, Integer, String> { 42 private TextView txtResult; 43 private ProgressBar progress; 44 45 public AsyncNetworkTask(Context context) { 46 super(); 47 MainActivity activity = (MainActivity)context; 48 txtResult = (TextView)activity.findViewById(R.id.txtResult); 49 progress = (ProgressBar)activity.findViewById(R.id.progress); 50 } 51 52 @Override 53 protected String doInBackground(String... params) { 54 publishProgress(30); 55 SystemClock.sleep(3000); 56 publishProgress(60); 57 StringBuilder builder = new StringBuilder(); 58 try { 59 URL url = new URL(params[0]); 60 HttpURLConnection con = (HttpURLConnection)url.openConnection(); 61 con.setRequestMethod("POST"); 62 con.setRequestProperty("Content-Type", "text/plain; charset=utf-8"); 63 con.setDoOutput(true); 64 OutputStream os = con.getOutputStream(); 65 PrintStream ps = new PrintStream(os); 66 ps.print(params[1]); 67 ps.close(); 68 BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "Shift-JIS")); 69 String line; 70 while ((line = reader.readLine()) != null){ 71 builder.append(line); 72 } 73 } catch (IOException e) { 74 e.printStackTrace(); 75 } 76 publishProgress(100); 77 return builder.toString(); 78 } 79 80 @Override 81 protected void onPreExecute() { 82 progress.setVisibility(ProgressBar.VISIBLE); 83 } 84 85 @Override 86 protected void onProgressUpdate(Integer... values) { 87 progress.setProgress(values[0]); 88 } 89 90 @Override 91 protected void onPostExecute(String result) { 92 txtResult.setText(result); 93 progress.setVisibility(ProgressBar.GONE); 94 } 95 96 @Override 97 protected void onCancelled() { 98 txtResult.setText("キャンセルされました。"); 99 progress.setVisibility(ProgressBar.GONE); 100 } 101 102} 103 104 105Javaサーブレット 106package servlet; 107 108import java.io.IOException; 109 110import javax.servlet.ServletException; 111import javax.servlet.annotation.WebServlet; 112import javax.servlet.http.HttpServlet; 113import javax.servlet.http.HttpServletRequest; 114import javax.servlet.http.HttpServletResponse; 115 116/** 117 * Servlet implementation class Test 118 */ 119@WebServlet("/Test") 120public class Test extends HttpServlet { 121 private static final long serialVersionUID = 1L; 122 123 /** 124 * @see HttpServlet#HttpServlet() 125 */ 126 public Test() { 127 super(); 128 // TODO Auto-generated constructor stub 129 } 130 131 /** 132 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 133 */ 134 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 135 // TODO Auto-generated method stub 136 response.getWriter().append("Served at: ").append(request.getContextPath()); 137 } 138 139 /** 140 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 141 */ 142 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 143 // TODO Auto-generated method stub 144 request.setCharacterEncoding("UTF-8"); 145 146 String a = request.getParameter("data"); 147 System.out.print(a); 148 149 150 151 } 152 153}
###試したこと
byte型で送ったり
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
AndroidStudio2.2.3
pleiades-4.6.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。