「已注销」 2017-03-13 06:56 采纳率: 0%
浏览 981

android 开发时 线程老是出问题,求帮忙看看怎么回事

跟着书上一步步来的,不知道哪里有问题,tomcat打开了,却连接不了服务器,似乎不执行线程里的东西

package com.example.administrator.myapplication;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

public class MainActivity extends AppCompatActivity {

private EditText nickname;
private EditText content;
private String result="";
private TextView resultTV;
private Handler handler;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nickname=(EditText)findViewById(R.id.nickname);
    content=(EditText)findViewById(R.id.content);
    resultTV=(TextView)findViewById(R.id.resultTV);

    button=(Button)findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if("".equals(content.getText().toString())){
                Toast.makeText(MainActivity.this,"请输入要发表的内容",Toast.LENGTH_SHORT).show();
                return;
            }

            new Thread(new Runnable() {
                public void run() {
                    send();
                    handler=new Handler(){
                        public void handleMessage(Message msg){
                            if (result!=null){
                                resultTV.setText(result);
                                content.setText("");
                                nickname.setText("");
                            }
                            super.handleMessage(msg);
                        }
                    };

                    Message m=handler.obtainMessage();
                    handler.sendMessage(m);
                }
            }).start();
        }
    });
}

public void send(){
    String target="http://10.0.2.2:8080/test/co.jsp";
    URL url;

    try {
        url=new URL(target);
        try {
            HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
            urlConn.setRequestMethod("POST");
            urlConn.setDoInput(true);
            urlConn.setDoOutput(true);
            urlConn.setInstanceFollowRedirects(true);
            urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
            DataOutputStream out=new DataOutputStream(urlConn.getOutputStream());

            String param="nickname="+ URLEncoder.encode(nickname.getText().toString(),"utf-8")+"&content="+URLEncoder.encode(content.getText().toString(),"utf-8");
            out.writeBytes(param);
            out.flush();
            out.close();

            if(urlConn.getResponseCode()==HttpURLConnection.HTTP_OK){
                InputStreamReader in =new InputStreamReader(urlConn.getInputStream());
                BufferedReader buffer=new BufferedReader(in);
                String inputLine=null;
                while ((inputLine=buffer.readLine())!=null){
                    result+=inputLine+"\n";
                }
                in.close();
            }
            urlConn.disconnect();

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

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

}

这是我jsp的内容

<%@page contentType="text/html;charset=utf-8" language="java" %>
<%
String content=request.getParameter("content");
String nickname=request.getParameter("nickname");
if(content!=null&&nickname!=null){
nickname=new String(nickname.getBytes("iso-8859-1"),"utf-8");
content=new String(content.getBytes("iso-8859-1"),"utf-8");
String date=new java.util.Date().toLocaleString();
%>
<%="["+nickname+"]于"+date+"发表一条内容如下:"%>
<%=content%>
<%}%>

  • 写回答

5条回答 默认 最新

  • devmiao 2017-03-13 22:55
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮