gpt4 book ai didi

java - 如何在 Servlet(从 Android 应用程序发送)中获取数据?

转载 作者:行者123 更新时间:2023-12-01 12:30:08 24 4
gpt4 key购买 nike

我是android新手,我已经寻找解决方案,但我找不到合适的解决方案,这就是我的原因发布此问题,

我无法在 servlet 中获取任何值,LogCat 中也没有错误,我的代码中有一些 Toast 来检查执行流程,所有 Toast 都只能工作在第一次尝试中,如果我第二次单击按钮,则只有第一个 Toast 会起作用,

请帮我找到解决办法,

这是我的 Android 代码

public void onClick(View v) {
final String u=txt_name.getText().toString();
final String p=txt_pswd.getText().toString();
Toast.makeText(getApplicationContext(), u+p,Toast.LENGTH_LONG).show();
new AsyncTask<String , Void, Void>() {

@Override
protected Void doInBackground(String... params) {

try{
//Log.d("Asynctask", ""+params);
//Looper.prepare();

URL url=new URL("http://10.0.2.2:8080/LoginExample/LoginServlet");

HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
urlConnection.setDoInput(true);
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("GET");
//Toast.makeText(getApplicationContext(), "connecting..",Toast.LENGTH_LONG).show();
urlConnection.connect();
//Toast.makeText(getApplicationContext(), "connected",Toast.LENGTH_LONG).show();
urlConnection.getOutputStream().write(("key1="+u+"&key2="+p).getBytes());
//Toast.makeText(getApplicationContext(), "sending....",Toast.LENGTH_LONG).show();
}catch(Exception e)
{
System.out.println("ERROR IN URL CONNECTION---"+e);
}

//Looper.loop();
return null;
}
}.execute();
});

这是我的 servlet,

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {

try
{
System.out.println("-----servlet--------------");
// UserBean user = new UserBean();
String uname=request.getParameter("key1");
String password=request.getParameter("key2");

System.out.println("uname ins ervlet==="+uname);

System.out.println("password in servlet==="+password);
}
catch (Throwable theException)
{
System.out.println(theException);
}

}

}

最佳答案

AsyncTask 写得不正确。不需要在doINBackground中编写Looper。在理想情况下,doInBackground 不处理 UI 元素。也删除 Toasts 语句。使用Log类打印日志。

您请求的部分似乎有误。如果它得到类型请求尝试

URL url=new URL("http://10.0.2.2:8080/LoginExample/LoginServlet?"+"key1="+u+"&key2="+p);

另请检查 list 文件中的互联网权限。

提供错误的堆栈跟踪。

关于java - 如何在 Servlet(从 Android 应用程序发送)中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25990790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com