qiaojiew 2013-12-27 07:08 采纳率: 0%
浏览 2551
已采纳

跪求高手帮忙看下程序为什么android连接不到servlet上,谢谢大家了

android客户端
package com.android.helloworld;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class ButtonDemo extends Activity{
private Button button;
private String username;
private String psw;
private EditText editText;
private EditText editText2;
public void onCreate(Bundle queding){
super.onCreate(queding);
/**
* 设置界面
/
setContentView(R.layout.activity_main);
/
*
* 根据ID找到界面上的按钮对象
/
button=(Button) findViewById(R.id.button1);
/
*
* 为按钮绑定点击时间
*/
button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            /**
             * 根据ID找到界面中的输入框
             */
            editText=(EditText) findViewById(R.id.editText1);
            /**
             * 根据ID找到界面中的输入框
             */
            editText2=(EditText) findViewById(R.id.editText2);
            /**
             * 把输入框中的内容去除空格后获得并且交给变量
             */
            username=editText.getText().toString().trim();
            /**
             * 把输入框中的内容去除空格后获得并且交给变量
             */
            psw=editText2.getText().toString().trim();
            /**
             * 构建需要传输的XML
             */
            /**
             * 将构建的XML转化成字符串
             */
            String xml="username"+username+"psw"+psw;

// /**
// * 打印日志
// /
// Log.i("得到数据", "用户名"+username+"密码"+psw);
/
*
* 打印看获得的数据和用户输入的数据是否一样
/
System.out.println("用户名"+username+"密码"+psw);
try {
/
*
* 服务器位置
/
URL url=new URL("http://127.0.0.1:8080/TestAndroid/1.do");
/
*
* 打开一个服务器的连接
/
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
/
*
* 设置超时时间 单位毫秒
/
connection.setConnectTimeout(5000);
/
*
* 允许输入
/
connection.setDoInput(true);
/
*
* 允许输出
/
connection.setDoOutput(true);
/
*
* 设置不允许用缓存
/
connection.setUseCaches(false);
/
*
* 设置请求方法
/
connection.setRequestMethod("POST");
/
*
* 设置发送字符串的编码格式
/
connection.setRequestProperty("Conten-Type", "text/xml;charset=UTF-8");
/
*
* 通过IO流的方式发送数据给服务器
/
OutputStream outputStream=connection.getOutputStream();
/
*
* 设置将XML转化为字节的形式进行传输,编码方式是UTF-8
/
outputStream.write(xml.getBytes("UTF-8"));
/
*
* 将输出流交给数据流发送
/
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
/
*
* 将数据发送出去并且清空数据输出流
/
dataOutputStream.flush();
/
*
* 关闭输出流并且释放占用的资源空间
*/
dataOutputStream.close();

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
}

}
servlet端
package testservlet;

import java.io.BufferedInputStream;
import java.io.IOException;

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

public class TestServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
// response.setContentType("text/xml;charset=utf-8");
// BufferedInputStream bufferedInputStream=new BufferedInputStream(request.getInputStream());
// byte[] bytes=new byte[1024*1024];
// int len=0;
// while((len=bufferedInputStream.read(bytes))!=-1){
// System.out.println(bytes);
// System.out.println(bytes.toString());
// }
// System.out.println(len);
System.out.println(111111);
}
}

有知道的告诉下怎么才可以解决
谢谢了
QQ704532683

  • 写回答

1条回答 默认 最新

  • qq983742902 2013-12-31 07:17
    关注

    Android的网络操作不能放在UI线程中,你的按钮点击事件就是发生在UI线程里,你应该新开一个线程和Message来处理你请求Servlet,然后用Handler来接收处理线程的消息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 android报错 brut.common.BrutException: could not exec (exit code = 1)
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥15 复杂网络,变滞后传递熵,FDA
  • ¥20 csv格式数据集预处理及模型选择
  • ¥15 部分网页页面无法显示!