0

我在一个 android 应用程序中有以下代码:

DefaultHttpClient hc=new DefaultHttpClient();
          ResponseHandler <String> res=new BasicResponseHandler();
          HttpPost postMethod=new HttpPost("http://127.0.0.1:8888/unidad6_eje1_conectarbd/ejecutaPOST"); 
          List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
          nameValuePairs.add(new BasicNameValuePair("value1", "Value my user entered"));
          postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
          String response=hc.execute(postMethod,res);

但它在最后一行失败了:

http://127.0.0 1: 8888/unidad6_eje1_conectarbd/ejecutaPOST 

可能已正确配置为接收 POST 请求,就好像我将该 URL 放在 Web 浏览器中一样,它会给出错误:错误 405 HTTP 方法 GET 不受此 URL 支持。

servlet 的代码如下:

公共类 LoginImpl 扩展 HttpServlet {

public static String nombre="";

String clave="";

    @Override
    public void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {

          String value1 = request.getParameter("value1");

          System.out.println(value1);
    }
}

我认为这应该不是问题。

谁能告诉我可能发生的事情?

4

2 回答 2

0

到目前为止人们所说的一切都是可能的,但没有人问你是否在 UI 线程上运行网络调用。如果你是,你的应用程序根本无法工作,因为潜在的挂断,你会想要研究 AsyncTasks 来解决你的问题。

于 2013-08-01T15:10:45.673 回答
0
  1. 您无法以自己的身份通过 ip 地址 127.0.0.1 访问任何内容,因为它是环回。因此,您在模拟器或测试设备上的 android 应用程序将永远不会通过此地址到达您主机上的应用程序服务器。

  2. 您是否尝试过使用正在运行您的应用程序服务器的主机的 IP 地址?

  3. 您的应用程序服务器是否接受远程连接?他在哪个界面上听?

  4. 您的 android 应用程序是否有权使用互联网,并且您的测试设备或模拟器网络是否可以访问与您的应用程序服务器相同的网络?

您的代码是正确的,但您的设置搞砸了;)

于 2013-08-01T14:53:18.177 回答