Java 将mysql数据从servlet发送到Android

Java 将mysql数据从servlet发送到Android,java,android,json,servlets,Java,Android,Json,Servlets,我试图使用JSON将我的mysql数据从servlet发送到android应用程序,但它显示错误java.net.connectException连接超时 这是带有recylcer视图的android片段。 当数据为伪数据时,RecyclerView工作正常 public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle sav

我试图使用JSON将我的mysql数据从servlet发送到android应用程序,但它显示错误
java.net.connectException连接超时

这是带有recylcer视图的android片段。 当数据为伪数据时,RecyclerView工作正常

public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v= inflater.inflate(R.layout.fragment_homefrag, container, false);
        final Context context=v.getContext();
        recyclerView= v.findViewById(R.id.recyler);
        final List<UserRecycle> sample=new ArrayList<>();
final String JSON_URL = "http://10.0.2.2:8080/OnlineBookStore/Home";
        RequestQueue requestQueue= Volley.newRequestQueue(context);
        StringRequest stringRequest=new StringRequest(Request.Method.GET, JSON_URL, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {

                try{
                    JSONObject jsonObject=new JSONObject(response);
                    JSONArray bookArray=jsonObject.getJSONArray("BookData");

                    for(int i=0;i<bookArray.length();i++){
                        JSONObject bookobject=bookArray.getJSONObject(i);

                        UserRecycle books=new UserRecycle();
                        book_ids.add(bookobject.getString("id"));
                        books.b_name=bookobject.getString("bname");
                        books.b_author=bookobject.getString("bauthor");
                        books.b_price=bookobject.getString("bprice");
                        books.b_avail=bookobject.getString("bstock");
                        books.b_image=R.drawable.bbanim;
                        sample.add(books);

                    }

                    layoutManager=new LinearLayoutManager(getContext());
                    recyclerView.setLayoutManager(layoutManager);
                    recyclerView.setHasFixedSize(true);
                    recyclerView.addItemDecoration(new DividerItemDecoration(getContext(), LinearLayout.VERTICAL));
                    recyclerView.setAdapter(new RecyclerAdapter(sample));

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

                Toast.makeText(getContext(), "error "+error.getMessage(), Toast.LENGTH_LONG).show();

            }
        });

        stringRequest.setRetryPolicy(new DefaultRetryPolicy( 50000, 5, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        requestQueue.add(stringRequest);

        return v;
    }
当我在网页上打印数据时,效果很好

我想问题在于在Servlet类或url中创建响应。
如果可以的话,请提供帮助。

您有android中的
Request.Method.GET
和servlet中的
processRequest
,我认为您需要将代码放入
doGet
方法,因为您的客户端正在向服务器发送
GET
请求。还有,现在我正在重置java.net.socketException连接。如果您在android中有
Request.Method.GET
,而servlet在
processRequest
中有代码,我认为您需要将代码放入
doGet
方法,因为您的客户端正在向服务器发送
GET
请求。还有,现在我要重置java.net.socketException连接
public class Home extends HttpServlet {

        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection con=Connect.connect();
        try{
             PrintWriter out=response.getWriter();
        PreparedStatement pst=con.prepareStatement("select * from book order by b_id desc;");
        ResultSet rst=pst.executeQuery();


            JsonObject jsonResponse= new JsonObject();            
            JsonArray data = new JsonArray();

            while(rst.next()){

                JsonObject row=new JsonObject();
                row.addProperty("id", rst.getString(1));
                row.addProperty("bname", rst.getString(2));
                row.addProperty("bauthor", rst.getString(3));
                row.addProperty("bprice", rst.getString(4));
                row.addProperty("bstock", rst.getString(5));
                data.add(row);
            }
            jsonResponse.add("BookData", data);
            out.print(jsonResponse);
        }
        catch(SQLException e){
        }
    }
}