开发者社区> 问答> 正文

Android无法连接服务器(服务器正常)

代码如下:

public static String doImgPost(URL url, String picture) {
        HttpURLConnection urlConnection = null;
        Log.d("tag","这只从客户端得到的数据"+picture);

        try {

            urlConnection = (HttpURLConnection) url.openConnection();//打开http连接
            urlConnection.setConnectTimeout(3000);//连接的超时时间
            urlConnection.setUseCaches(false);//不使用缓存
            //urlConnection.setFollowRedirects(false);是static函数,作用于所有的URLConnection对象。
            urlConnection.setInstanceFollowRedirects(true);//是成员函数,仅作用于当前函数,设置这个连接是否可以被重定向
            urlConnection.setReadTimeout(3000);//响应的超时时间
            urlConnection.setDoInput(true);//设置这个连接是否可以写入数据
            urlConnection.setDoOutput(true);//设置这个连接是否可以输出数据
            urlConnection.setRequestMethod("POST" );//设置请求的方式
            //urlConnection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");//设置消息的类型
            System.out.println("正在连接");
            urlConnection.connect();// 连接,从上述至此的配置必须要在connect之前完成,实际上它只是建立了一个与服务器的TCP连接
            System.out.println("连接成功");
            OutputStream out = urlConnection.getOutputStream();//输出流,用来发送请求,http请求实际上直到这个函数里面才正式发送出去
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));//创建字符流对象并用高效缓冲流包装它,便获得最高的效率,发送的是字符串推荐用字符流,其它数据就用字节流
            bw.write(picture);//把字符串写入缓冲区中
            bw.flush();//刷新缓冲区,把数据发送出去,这步很重要
            out.close();
            bw.close();//使用完关闭
            if(urlConnection.getResponseCode()==HttpURLConnection.HTTP_OK){//得到服务端的返回码是否连接成功

                InputStream in = urlConnection.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(in));

                StringBuilder response = new StringBuilder();
                String line;
                while ((line = br.readLine()) != null) {
                    response.append(line);
                }
                return response.toString();
            }
        }catch (Exception e) {
        }finally{
            urlConnection.disconnect();//使用完关闭TCP连接,释放资源
        }
        return null;
    }


Android不报错,服务器正常,能通过浏览器连接。 问题出在urlConnection.connect();这一句上,但是不知道该怎么改。

遇到了同样的问题,在CSDN看到了,希望阿里云团队能够给出正确、标准的答案~请查看

展开
收起
刘刚_ 2020-05-22 21:38:16 1040 0
1 条回答
写回答
取消 提交回答
  • 你好,问题已转交阿里云Goc团队,敬请期待

    2020-05-22 21:57:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载