Android上传文件报错 java.net.SocketTimeoutException: timeout

  //上传数据
        public void upload_Data(String jsons) {
//            String categoryNo = "";
//            String CategoryName = "";
//            String location_no = "";
//            JSONObject jsonObject = new JSONObject();
//            jsonObject.put("userNo", "003");
//            jsonObject.put("categoryNo", "");
//            jsonObject.put("categoryName", "");
//            jsonObject.put("locationName", "广州");
//            String json = "";

            showProgressDialog("提示", "正在上传,请稍等......");


          //  System.out.println("测试jsons:" + jsons);
            new Thread() {
                @Override
                public void run() {
                    //创建okhtto请求的对象
                    try {
                        String result="";

                        String filePath =getSavePath()+"/data_task.txt";
                        //  uploadTest1(jsons,"http://"+ipAddress+":"+port+"/demo/uploadFileHandheldTxt",urls,"transcript.txt");
                        createFile();//创建

                        writeTxt(getSavePath()+"/data_task.txt",jsons);//写入数据
                        // String filestrUrl=getSavePath()+"/transcript.txt";

                        // String path = "http://192.168.1.108:8080/demo/uploadFileHandheldTxt";
                        //   String path = "http://"+ipAddress+":"+port+"/demo/uploadFileHandheldTxt";

                        // 手机端要上传的文件,首先要保存你手机上存在该文件
                       // AsyncHttpClient httpClient = new AsyncHttpClient();

                        // RequestParams param = new RequestParams();



                        String SERVER_URL = "http://"+server_ipAddress+":"+server_port+"/demo/uploadFileTaskHandheldTxt";

                        // 创建OkHttpClient对象
                        OkHttpClient client = new OkHttpClient().newBuilder().connectTimeout(60000, TimeUnit.MILLISECONDS)
                                .readTimeout(60000,TimeUnit.MILLISECONDS).build();
                        // client.connectTimeoutMillis();
                        // client.callTimeoutMillis();
//                        String SERVER_URL = "http://" + ipAddress + ":" + port + "/demo/uploadFileScanningHandheld";
//
//                        Response response= FileUtil.getResponse(HomeBatchActivity.this,SERVER_URL,jsons);
                        MediaType mediaType=MediaType.Companion.parse("text/plain;charset=utf-8");
                        File file=new File(filePath);
                        RequestBody fileBody=RequestBody.Companion.create(file,mediaType);
                        RequestBody requestBody=new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file",file.getName(),fileBody).build();

                        // 创建请求对象
                        Request request = new Request.Builder()
                                .url(SERVER_URL)
                                .post(requestBody)
                                .build();


                        // 发送请求
                        Response response = client.newCall(request).execute();

                       // System.out.println("测试获取返回结果:"+response.code());
//                        // 获取返回结果
                        if (response.isSuccessful()) {
                            result= response.body().string();
                            System.out.println("测试获取返回结果:"+result);
                        } else {
                            result= "";
                        }


                        // int code = response.code();
                        int code = 200;

                        // System.out.println("获取2返回结果测试code:"+code);
                        if (code == 200) {
                            hideProgressDialog();
                            /**
                             * 如果获取的code为200,则证明数据获取是正确的。
                             //                             */

                            // 获取返回结果
//                            if (response.isSuccessful()) {
//                                result= response.body().string();
//                                System.out.println("获取2返回结果测试:"+result);
//                            } else {
//                                result="";
//                            }
//                            InputStream is = conn.getInputStream();
//
//                            String result = readMyInputStream(is);

                              System.out.println("测试:"+result);
                            /**
                             * 子线程发送消息到主线程,并将获取的结果带到主线程,让主线程来更新UI。
                             */
                            Message msg = new Message();
                            msg.obj = result;
                            msg.what = SUCCESS_3;
                            handlerHttp.sendMessage(msg);

                        } else {
                            hideProgressDialog();
                            Message msg = new Message();
                            msg.what = ERRORCODE;
                            msg.obj=code;
                            handlerHttp.sendMessage(msg);
                        }

                    } catch (SocketTimeoutException e) {
                        hideProgressDialog();
                        e.printStackTrace();
                        /**
                         * 如果获取失败,或出现异常,那么子线程发送失败的消息(FAILURE)到主线程,主线程显示Toast,来告诉使用者,数据获取是失败。
                         */
                        Message msg = new Message();
                        msg.what = SocketTimeout;
                        handlerHttp.sendMessage(msg);
                    }catch (Exception e) {
                        hideProgressDialog();
                        e.printStackTrace();
                        /**
                         * 如果获取失败,或出现异常,那么子线程发送失败的消息(FAILURE)到主线程,主线程显示Toast,来告诉使用者,数据获取是失败。
                         */
                        Message msg = new Message();
                        msg.what = FAILURE;
                        handlerHttp.sendMessage(msg);
                    }

                }
            }.start();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

试行

祝您生活愉快!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值