找不到文件异常

时间:2011-12-29 09:58:20

标签: android

我在android工作。我想将foursquare与我的应用程序集成。

在一个地方办理登机手续。我使用以下代码: -

    URL url = new URL("https://api.foursquare.com/v2/checkins/add/");

                URLConnection conn = url.openConnection();
                conn.setDoOutput(true);
                OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
                wr.write(data);
                wr.flush();

                BufferedReader rd = new BufferedReader(new 

InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = rd.readLine()) != null) {

            }

但这是生成文件未找到的异常。请帮我解决我的错误。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用以下方法

从网址读取和写入数据

void readAndWriteFromWeb(){

        //make connection

        URL url = new URL("https://api.foursquare.com/v2/checkins/add/");

        HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
        httpURLConnection.setRequestMethod("POST");
        httpURLConnection.setDoOutput(true);
        httpURLConnection.setDoInput(true);
        httpURLConnection.setAllowUserInteraction(true);
        httpURLConnection.setRequestProperty("Connection", "keep-alive");
        httpURLConnection.setRequestProperty("ConnectionTimeout", "12000");
        httpURLConnection.setRequestProperty("Content-Length", "" + request.length);

        //write data
        OutputStream out = httpURLConnection.getOutputStream();
        out.write(request);
        out.flush();
        //Log.e("Request URL "+url, "Request Data  "+request);

    //read data
        InputStream inputStream = httpURLConnection.getInputStream();
        int length = httpURLConnection.getContentLength();
        //Log.e("Content Length", "" + length);

        int readLength = 0;
        int chunkSize  = 1024;
        int readBytes = 0;
        byte[] data = new byte[chunkSize];

        StringBuilder builder = new StringBuilder();

        while((readBytes = inputStream.read(data)) != -1){
            builder.append(new String(data,0,readBytes).trim());
            readLength += readBytes;

            //Release the memory.
            data = null;
            //Check the remaining length
            if((length - readLength) < chunkSize){
                if((length - readLength) == 0){
                    break;
                }
                data = new byte[((length) - readLength)];
            }else{
                data = new byte[chunkSize];
            }
        }
    }