为了账号安全,请及时绑定邮箱和手机立即绑定

android用httpurlconnection时运行到outputstream时总会超时

android用httpurlconnection时运行到outputstream时总会超时

qq__3574 2017-03-23 01:05:38
public class MainActivity extends Activity {    private Button send;    private EditText input;    private TextView output;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        input=(EditText)this.findViewById(R.id.input);        output=(TextView)this.findViewById(R.id.output);        send=(Button) this.findViewById(R.id.send);        send.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                final String Output=input.getText().toString().trim();                new Thread(new Runnable() {                    @Override                    public void run() {                        String path="http://192.168.11.254:8080";                        //String path="http://192.168.111.93";                        try {                            URL url=new URL(path);                            //打开http连接                            HttpURLConnection conn=(HttpURLConnection) url.openConnection();                            conn.setDoInput(true);                            conn.setDoOutput(false);                            conn.setRequestMethod("POST");                          //  conn.setRequestMethod("GET");                            conn.setConnectTimeout(1000*30);//连接超时时间                            conn.setReadTimeout(1000*30);//读取数据的超时时间                            conn.setUseCaches(false);//                            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");//                            conn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接//                            conn.setRequestProperty("Charset", "UTF-8");//                            conn.setRequestProperty("Content-type", "application/x-java-serialized-object");                              conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");                            conn.connect();                            //对服务器端读取或写入数据                            //DataOutputStream out=new DataOutputStream(conn.getOutputStream());                            OutputStream out=conn.getOutputStream();                            out.write(Output.getBytes());                            //out.writeBytes(Output);                            out.flush();                            out.close();                            //获取响应数据                            int code=conn.getResponseCode();                            String sCurrentLine="";                            String sTotalString="";                            if(code==200){                                InputStream os=conn.getInputStream();                                BufferedReader reader=new BufferedReader(new InputStreamReader(os));                                while((sCurrentLine=reader.readLine())!=null){                                    if(sCurrentLine.length()>0){                                        sTotalString=sTotalString+sCurrentLine.trim();                                    }                                }                                final String finalLine = sTotalString;                                runOnUiThread(new Runnable() {                                    @Override                                    public void run() {                                        output.setText("内容:"+ finalLine);                                        Toast.makeText(MainActivity.this,"try!!!",Toast.LENGTH_SHORT).show();                                    }                                });                            }else{                                Toast.makeText(MainActivity.this,"fail!",Toast.LENGTH_LONG).show();                            }                            //InputStreamReader in=new InputStreamReader(conn.getInputStream());//                             BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));//                            //BufferedReader br=new BufferedReader(in);//                            String readLine;//                            StringBuffer strbuffer=new StringBuffer();//                            String line=null;//                            while((readLine=br.readLine())!=null){////                                line+=readLine;//                                strbuffer.append(readLine);//                                strbuffer.append("\n");//                            }////                            line=strbuffer.toString();//                            br.close();                            //System.out.println("result"+result);                            conn.disconnect();//关闭连接                        } catch (MalformedURLException e) {                            e.printStackTrace();                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                }).start();            }        });    }}真的无法找到原因了,求助求助
查看完整描述

2 回答

?
qq_冷少_3

TA贡献7条经验 获得超1个赞

建议单独写个异步类来做网络请求操作
查看完整回答
反对 回复 2017-04-15
?
慕设计4827416

TA贡献7条经验 获得超1个赞

建议使用最新的httpOk原声谷歌开发的请求框架
查看完整回答
反对 回复 2017-03-23
  • qq__3574
    qq__3574
    我想知道为什么只要运行到outputstream时总会抛出超市异常,如何写入当个字符给服务器用httpurlconnection呢。。。
  • 2 回答
  • 0 关注
  • 2260 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信